TestTypesNumeric tests numeric type handling
(t *testing.T)
| 6 | |
| 7 | // TestTypesNumeric tests numeric type handling |
| 8 | func TestTypesNumeric(t *testing.T) { |
| 9 | tests := []QueryTest{ |
| 10 | // Integer types |
| 11 | {Name: "smallint_literal", Query: "SELECT 1::SMALLINT"}, |
| 12 | {Name: "integer_literal", Query: "SELECT 42::INTEGER"}, |
| 13 | {Name: "bigint_literal", Query: "SELECT 9223372036854775807::BIGINT"}, |
| 14 | {Name: "int2_alias", Query: "SELECT 1::INT2"}, |
| 15 | {Name: "int4_alias", Query: "SELECT 1::INT4"}, |
| 16 | {Name: "int8_alias", Query: "SELECT 1::INT8"}, |
| 17 | |
| 18 | // Floating point |
| 19 | {Name: "real_literal", Query: "SELECT 3.14::REAL"}, |
| 20 | {Name: "double_precision", Query: "SELECT 3.14159265358979::DOUBLE PRECISION"}, |
| 21 | {Name: "float4_alias", Query: "SELECT 1.5::FLOAT4"}, |
| 22 | {Name: "float8_alias", Query: "SELECT 1.5::FLOAT8"}, |
| 23 | |
| 24 | // Numeric/Decimal |
| 25 | {Name: "numeric_literal", Query: "SELECT 123.456::NUMERIC"}, |
| 26 | {Name: "numeric_precision", Query: "SELECT 123.456::NUMERIC(10, 2)"}, |
| 27 | {Name: "decimal_alias", Query: "SELECT 123.456::DECIMAL(10, 2)"}, |
| 28 | |
| 29 | // Special float values |
| 30 | {Name: "float_nan", Query: "SELECT 'NaN'::FLOAT"}, |
| 31 | {Name: "float_infinity", Query: "SELECT 'Infinity'::FLOAT"}, |
| 32 | {Name: "float_neg_infinity", Query: "SELECT '-Infinity'::FLOAT"}, |
| 33 | |
| 34 | // Integer operations |
| 35 | {Name: "integer_add", Query: "SELECT 2147483647 + 1::BIGINT"}, |
| 36 | {Name: "integer_multiply", Query: "SELECT 1000000 * 1000000::BIGINT"}, |
| 37 | {Name: "integer_divide", Query: "SELECT 10 / 3"}, |
| 38 | {Name: "integer_modulo", Query: "SELECT 17 % 5"}, |
| 39 | |
| 40 | // From table |
| 41 | {Name: "select_int_columns", Query: "SELECT int2_col, int4_col, int8_col FROM types_test WHERE id = 1"}, |
| 42 | {Name: "select_float_columns", Query: "SELECT float4_col, float8_col FROM types_test WHERE id = 1"}, |
| 43 | {Name: "select_numeric_column", Query: "SELECT numeric_col FROM types_test WHERE id = 1"}, |
| 44 | } |
| 45 | runQueryTests(t, tests) |
| 46 | } |
| 47 | |
| 48 | // TestTypesCharacter tests character/string type handling |
| 49 | func TestTypesCharacter(t *testing.T) { |
nothing calls this directly
no test coverage detected