From: Timur Safin via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: <imeevma@tarantool.org> Cc: <tarantool-patches@dev.tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions Date: Tue, 13 Jul 2021 11:51:39 +0300 [thread overview] Message-ID: <03f901d777c4$4bda6be0$e38f43a0$@tarantool.org> (raw) In-Reply-To: <8ca070644eb6f10db748af6801ddaaec3bbef5f8.1626159705.git.imeevma@gmail.com> Yup, text and real were always confusing before.1 LGTM : From: imeevma@tarantool.org <imeevma@tarantool.org> : Subject: [PATCH v2 3/4] sql: use proper type names in error descriptions : : Prior to this patch, the type mismatch error description and the : inconsistent types error description in some cases displayed type names : that were different from the default ones. After this patch, all types : in these descriptions are described using the default names. : : Part of #6176 : --- : src/box/sql/func.c | 12 +- : src/box/sql/mem.c | 14 +- : src/box/sql/vdbe.c | 2 +- : test/sql-tap/func.test.lua | 6 +- : test/sql-tap/index1.test.lua | 4 +- : test/sql-tap/position.test.lua | 16 +- : test/sql-tap/select1.test.lua | 2 +- : test/sql-tap/sql-errors.test.lua | 8 +- : test/sql-tap/uuid.test.lua | 28 +- : test/sql/boolean.result | 716 +++++++++++++++---------------- : test/sql/types.result | 34 +- : 11 files changed, 422 insertions(+), 420 deletions(-) : : diff --git a/src/box/sql/func.c b/src/box/sql/func.c : index f93ae867d..e4832f46d 100644 : --- a/src/box/sql/func.c : +++ b/src/box/sql/func.c : @@ -324,7 +324,7 @@ position_func(struct sql_context *context, int argc, : struct Mem **argv) : inconsistent_type_arg = haystack; : if (inconsistent_type_arg != NULL) { : diag_set(ClientError, ER_INCONSISTENT_TYPES, : - "text or varbinary", : + "string or varbinary", : mem_type_to_str(inconsistent_type_arg)); : context->is_aborted = true; : return; : @@ -590,7 +590,7 @@ roundFunc(sql_context * context, int argc, sql_value ** : argv) : return; : if (!mem_is_num(argv[0]) && !mem_is_str(argv[0])) { : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, : - mem_str(argv[0]), "numeric"); : + mem_str(argv[0]), "number"); : context->is_aborted = true; : return; : } : @@ -650,7 +650,7 @@ case_type##ICUFunc(sql_context *context, int argc, : sql_value **argv) \ : UNUSED_PARAMETER(argc); : \ : if (mem_is_bin(argv[0]) || mem_is_map(argv[0]) || : \ : mem_is_array(argv[0])) { : \ : - diag_set(ClientError, ER_INCONSISTENT_TYPES, "text", \ : + diag_set(ClientError, ER_INCONSISTENT_TYPES, "string", \ : "varbinary"); \ : context->is_aborted = true; \ : return; \ : @@ -733,7 +733,7 @@ randomBlob(sql_context * context, int argc, sql_value ** : argv) : if (mem_is_bin(argv[0]) || mem_is_map(argv[0]) || : mem_is_array(argv[0])) { : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, : - mem_str(argv[0]), "numeric"); : + mem_str(argv[0]), "number"); : context->is_aborted = true; : return; : } : @@ -987,7 +987,7 @@ likeFunc(sql_context *context, int argc, sql_value : **argv) : char *inconsistent_type = rhs_type != MP_STR ? : mem_type_to_str(argv[0]) : : mem_type_to_str(argv[1]); : - diag_set(ClientError, ER_INCONSISTENT_TYPES, "text", : + diag_set(ClientError, ER_INCONSISTENT_TYPES, "string", : inconsistent_type); : context->is_aborted = true; : return; : @@ -1624,7 +1624,7 @@ soundexFunc(sql_context * context, int argc, sql_value : ** argv) : if (mem_is_bin(argv[0]) || mem_is_map(argv[0]) || : mem_is_array(argv[0])) { : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, : - mem_str(argv[0]), "text"); : + mem_str(argv[0]), "string"); : context->is_aborted = true; : return; : } : diff --git a/src/box/sql/mem.c b/src/box/sql/mem.c : index 3bbff9897..c4375e1ea 100644 : --- a/src/box/sql/mem.c : +++ b/src/box/sql/mem.c : @@ -1450,12 +1450,12 @@ mem_concat(struct Mem *a, struct Mem *b, struct Mem : *result) : /* Concatenation operation can be applied only to strings and blobs. : */ : if (((b->type & (MEM_TYPE_STR | MEM_TYPE_BIN)) == 0)) { : diag_set(ClientError, ER_INCONSISTENT_TYPES, : - "text or varbinary", mem_type_to_str(b)); : + "string or varbinary", mem_type_to_str(b)); : return -1; : } : if (((a->type & (MEM_TYPE_STR | MEM_TYPE_BIN)) == 0)) { : diag_set(ClientError, ER_INCONSISTENT_TYPES, : - "text or varbinary", mem_type_to_str(a)); : + "string or varbinary", mem_type_to_str(a)); : return -1; : } : : @@ -1544,12 +1544,12 @@ arithmetic_prepare(const struct Mem *left, const : struct Mem *right, : { : if (get_number(right, b) != 0) { : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, mem_str(right), : - "numeric"); : + "number"); : return -1; : } : if (get_number(left, a) != 0) { : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, mem_str(left), : - "numeric"); : + "number"); : return -1; : } : assert(a->type != 0 && b->type != 0); : @@ -2065,15 +2065,17 @@ mem_type_to_str(const struct Mem *p) : case MEM_TYPE_NULL: : return "NULL"; : case MEM_TYPE_STR: : - return "text"; : + return "string"; : case MEM_TYPE_INT: : return "integer"; : case MEM_TYPE_UINT: : return "unsigned"; : case MEM_TYPE_DOUBLE: : - return "real"; : + return "double"; : case MEM_TYPE_ARRAY: : + return "array"; : case MEM_TYPE_MAP: : + return "map"; : case MEM_TYPE_BIN: : return "varbinary"; : case MEM_TYPE_BOOL: : diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c : index 32d02d96e..03f420bca 100644 : --- a/src/box/sql/vdbe.c : +++ b/src/box/sql/vdbe.c : @@ -1674,7 +1674,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, : in3 */ : mem_cast_implicit_old(pIn3, type) != 0 ? : mem_str(pIn3) : mem_str(pIn1); : diag_set(ClientError, ER_SQL_TYPE_MISMATCH, str, : - "numeric"); : + "number"); : goto abort_due_to_error; : } : } else { : diff --git a/test/sql-tap/func.test.lua b/test/sql-tap/func.test.lua : index ae6bc9ddd..66e525871 100755 : --- a/test/sql-tap/func.test.lua : +++ b/test/sql-tap/func.test.lua : @@ -2931,7 +2931,7 @@ test:do_catchsql_test( : SELECT ROUND(X'FF') : ]], { : -- <func-76.1> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </func-76.1> : }) : : @@ -2941,7 +2941,7 @@ test:do_catchsql_test( : SELECT RANDOMBLOB(X'FF') : ]], { : -- <func-76.2> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </func-76.2> : }) : : @@ -2951,7 +2951,7 @@ test:do_catchsql_test( : SELECT SOUNDEX(X'FF') : ]], { : -- <func-76.3> : - 1, "Type mismatch: can not convert x'FF' to text" : + 1, "Type mismatch: can not convert x'FF' to string" : -- </func-76.3> : }) : : diff --git a/test/sql-tap/index1.test.lua b/test/sql-tap/index1.test.lua : index e03e284aa..9e57639cc 100755 : --- a/test/sql-tap/index1.test.lua : +++ b/test/sql-tap/index1.test.lua : @@ -778,7 +778,7 @@ test:do_catchsql_test( : SELECT c FROM t6 WHERE a>123; : ]], { : -- <index-14.6> : - 1, "Type mismatch: can not convert '' to numeric" : + 1, "Type mismatch: can not convert '' to number" : -- </index-14.6> : }) : : @@ -788,7 +788,7 @@ test:do_catchsql_test( : SELECT c FROM t6 WHERE a>=123; : ]], { : -- <index-14.7> : - 1, "Type mismatch: can not convert '' to numeric" : + 1, "Type mismatch: can not convert '' to number" : -- </index-14.7> : }) : : diff --git a/test/sql-tap/position.test.lua b/test/sql-tap/position.test.lua : index 506efe0f4..dd4fa62d0 100755 : --- a/test/sql-tap/position.test.lua : +++ b/test/sql-tap/position.test.lua : @@ -228,7 +228,7 @@ test:do_test( : return test:catchsql "SELECT position(34, 12345);" : end, { : -- <position-1.23> : - 1, "Inconsistent types: expected text or varbinary got unsigned" : + 1, "Inconsistent types: expected string or varbinary got unsigned" : -- </position-1.23> : }) : : @@ -238,7 +238,7 @@ test:do_test( : return test:catchsql "SELECT position(34, 123456.78);" : end, { : -- <position-1.24> : - 1, "Inconsistent types: expected text or varbinary got real" : + 1, "Inconsistent types: expected string or varbinary got double" : -- </position-1.24> : }) : : @@ -248,7 +248,7 @@ test:do_test( : return test:catchsql "SELECT position(x'3334', 123456.78);" : end, { : -- <position-1.25> : - 1, "Inconsistent types: expected text or varbinary got real" : + 1, "Inconsistent types: expected string or varbinary got double" : -- </position-1.25> : }) : : @@ -554,7 +554,7 @@ test:do_test( : return test:catchsql("SELECT position('x', x'78c3a4e282ac79');") : end, { : -- <position-1.54> : - 1, "Inconsistent types: expected text got varbinary" : + 1, "Inconsistent types: expected string got varbinary" : -- </position-1.54> : }) : : @@ -564,7 +564,7 @@ test:do_test( : return test:catchsql "SELECT position('y', x'78c3a4e282ac79');" : end, { : -- <position-1.55> : - 1, "Inconsistent types: expected text got varbinary" : + 1, "Inconsistent types: expected string got varbinary" : -- </position-1.55> : }) : : @@ -614,7 +614,7 @@ test:do_test( : return test:catchsql "SELECT position(x'79', 'xä€y');" : end, { : -- <position-1.57.1> : - 1, "Inconsistent types: expected varbinary got text" : + 1, "Inconsistent types: expected varbinary got string" : -- </position-1.57.1> : }) : : @@ -624,7 +624,7 @@ test:do_test( : return test:catchsql "SELECT position(x'a4', 'xä€y');" : end, { : -- <position-1.57.2> : - 1, "Inconsistent types: expected varbinary got text" : + 1, "Inconsistent types: expected varbinary got string" : -- </position-1.57.2> : }) : : @@ -634,7 +634,7 @@ test:do_test( : return test:catchsql "SELECT position('y', x'78c3a4e282ac79');" : end, { : -- <position-1.57.3> : - 1, "Inconsistent types: expected text got varbinary" : + 1, "Inconsistent types: expected string got varbinary" : -- </position-1.57.3> : }) : : diff --git a/test/sql-tap/select1.test.lua b/test/sql-tap/select1.test.lua : index 1a7a4ee82..57c5c2cb3 100755 : --- a/test/sql-tap/select1.test.lua : +++ b/test/sql-tap/select1.test.lua : @@ -320,7 +320,7 @@ test:do_catchsql_test( : SELECT count(*),count(a),count(b) FROM t4 WHERE b=5 : ]], { : -- <select1-2.5.3> : - 1, "Type mismatch: can not convert 'This is a string that is too : big to fit inside a NBFS buffer' to numeric" : + 1, "Type mismatch: can not convert 'This is a string that is too : big to fit inside a NBFS buffer' to number" : -- </select1-2.5.3> : }) : : diff --git a/test/sql-tap/sql-errors.test.lua b/test/sql-tap/sql- : errors.test.lua : index 52276c27b..66dc77fa1 100755 : --- a/test/sql-tap/sql-errors.test.lua : +++ b/test/sql-tap/sql-errors.test.lua : @@ -696,7 +696,7 @@ test:do_catchsql_test( : SELECT X'ff' + 1; : ]], { : -- <sql-errors-2.1> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </sql-errors-2.1> : }) : : @@ -706,7 +706,7 @@ test:do_catchsql_test( : SELECT X'ff' - 1; : ]], { : -- <sql-errors-2.2> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </sql-errors-2.2> : }) : : @@ -716,7 +716,7 @@ test:do_catchsql_test( : SELECT X'ff' * 1; : ]], { : -- <sql-errors-2.3> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </sql-errors-2.3> : }) : : @@ -726,7 +726,7 @@ test:do_catchsql_test( : SELECT X'ff' / 1; : ]], { : -- <sql-errors-2.4> : - 1, "Type mismatch: can not convert x'FF' to numeric" : + 1, "Type mismatch: can not convert x'FF' to number" : -- </sql-errors-2.4> : }) : : diff --git a/test/sql-tap/uuid.test.lua b/test/sql-tap/uuid.test.lua : index 1fc99916a..c9e1b4fcc 100755 : --- a/test/sql-tap/uuid.test.lua : +++ b/test/sql-tap/uuid.test.lua : @@ -337,7 +337,7 @@ test:do_catchsql_test( : [[ : SELECT u LIKE 'a' from t2; : ]], { : - 1, "Inconsistent types: expected text got uuid" : + 1, "Inconsistent types: expected string got uuid" : }) : : test:do_execsql_test( : @@ -395,7 +395,7 @@ test:do_catchsql_test( : [[ : SELECT POSITION(u, '1') from t2; : ]], { : - 1, "Inconsistent types: expected text or varbinary got uuid" : + 1, "Inconsistent types: expected string or varbinary got uuid" : }) : : test:do_execsql_test( : @@ -421,7 +421,7 @@ test:do_catchsql_test( : [[ : SELECT ROUND(u) from t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_execsql_test( : @@ -505,7 +505,7 @@ test:do_catchsql_test( : [[ : SELECT u || u from t2; : ]], { : - 1, "Inconsistent types: expected text or varbinary got uuid" : + 1, "Inconsistent types: expected string or varbinary got uuid" : }) : : local func = {language = 'Lua', body = 'function(x) return type(x) end', : @@ -971,7 +971,7 @@ test:do_catchsql_test( : [[ : SELECT -u FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_catchsql_test( : @@ -979,7 +979,7 @@ test:do_catchsql_test( : [[ : SELECT u + 1 FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_catchsql_test( : @@ -987,7 +987,7 @@ test:do_catchsql_test( : [[ : SELECT u - 1 FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_catchsql_test( : @@ -995,7 +995,7 @@ test:do_catchsql_test( : [[ : SELECT u * 1 FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_catchsql_test( : @@ -1003,7 +1003,7 @@ test:do_catchsql_test( : [[ : SELECT u / 1 FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : test:do_catchsql_test( : @@ -1011,7 +1011,7 @@ test:do_catchsql_test( : [[ : SELECT u % 1 FROM t2; : ]], { : - 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to numeric" : + 1, "Type mismatch: can not convert '11111111-1111-1111-1111- : 111111111111' to number" : }) : : -- Check that bitwise operations work with UUIDs as intended. : @@ -1118,7 +1118,7 @@ test:do_catchsql_test( : [[ : SELECT u > '1' FROM t2; : ]], { : - 1, "Type mismatch: can not convert text to uuid" : + 1, "Type mismatch: can not convert string to uuid" : }) : : test:do_catchsql_test( : @@ -1126,7 +1126,7 @@ test:do_catchsql_test( : [[ : SELECT u > 1.5 FROM t2; : ]], { : - 1, "Type mismatch: can not convert real to uuid" : + 1, "Type mismatch: can not convert double to uuid" : }) : : test:do_catchsql_test( : @@ -1182,7 +1182,7 @@ test:do_catchsql_test( : [[ : SELECT u = '1' FROM t2; : ]], { : - 1, "Type mismatch: can not convert text to uuid" : + 1, "Type mismatch: can not convert string to uuid" : }) : : test:do_catchsql_test( : @@ -1190,7 +1190,7 @@ test:do_catchsql_test( : [[ : SELECT u = 1.5 FROM t2; : ]], { : - 1, "Type mismatch: can not convert real to uuid" : + 1, "Type mismatch: can not convert double to uuid" : }) : : test:do_catchsql_test( : diff --git a/test/sql/boolean.result b/test/sql/boolean.result : index dbd31fbb5..320525d36 100644 : --- a/test/sql/boolean.result : +++ b/test/sql/boolean.result : @@ -138,12 +138,12 @@ INSERT INTO ts(s) VALUES ('abc'), (12.5); : SELECT s FROM ts WHERE s = true; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT s FROM ts WHERE s < true; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT s FROM ts WHERE s IN (true, 1, 'abcd'); : | --- : @@ -1122,245 +1122,245 @@ SELECT a, a1, a OR a1 FROM t, t6; : SELECT -true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT -false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT -a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT true + true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT true + false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT false + true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false + false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true - true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT true - false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT false - true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false - false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true * true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT true * false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT false * true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false * false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true / true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT true / false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT false / true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false / false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true % true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT true % false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT false % true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false % false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a, true + a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, false + a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, true - a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, false - a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, true * a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, false * a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, true / a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, false / a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, true % a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, false % a FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a + true FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a, a + false FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a - true FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a, a - false FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a * true FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a, a * false FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a / true FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a, a / false FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a % true FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a, a % false FROM t; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a, a1, a + a1 FROM t, t6; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a1, a - a1 FROM t, t6; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a1, a * a1 FROM t, t6; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a1, a / a1 FROM t, t6; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a, a1, a % a1 FROM t, t6; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT ~true; : @@ -1560,64 +1560,64 @@ SELECT a, a1, a >> a1 FROM t, t6; : SELECT true || true; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT true || false; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT false || true; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT false || false; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : SELECT a, true || a FROM t; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a, false || a FROM t; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a, a || true FROM t; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a, a || false FROM t; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : SELECT a1, a1 || a1 FROM t6; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a2, a2 || a2 FROM t6; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a1, a2, a1 || a1 FROM t6; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT a1, a2, a2 || a2 FROM t6; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : -- Check comparisons. : @@ -2643,405 +2643,405 @@ SELECT a2, b, b OR a2 FROM t6, t7; : SELECT true + 2; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false + 2; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true - 2; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false - 2; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true * 2; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false * 2; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true / 2; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false / 2; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true % 2; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false % 2; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2 + true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2 + false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2 - true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2 - false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2 * true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2 * false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2 / true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2 / false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2 % true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2 % false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a1, a1 + 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 - 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 * 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 / 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 % 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2 + a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2 - a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2 * a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2 / a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2 % a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a2, a2 + 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 - 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 * 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 / 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 % 2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2 + a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2 - a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2 * a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2 / a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2 % a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : : SELECT b, true + b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, false + b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, true - b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, false - b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, true * b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, false * b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, true / b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, false / b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, true % b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, false % b FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, b + true FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, b + false FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, b - true FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, b - false FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, b * true FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, b * false FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, b / true FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, b / false FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT b, b % true FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT b, b % false FROM t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a1, b, a1 + b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, a1 - b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, a1 * b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, a1 / b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, a1 % b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, b + a1 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, b - a1 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, b * a1 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, b / a1 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, b, b % a1 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a2, b, a2 + b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, a2 - b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, a2 * b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, a2 / b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, a2 % b FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, b + a2 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, b - a2 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, b * a2 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, b / a2 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, b, b % a2 FROM t6, t7; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : : SELECT true & 2; : @@ -4112,897 +4112,897 @@ SELECT a2, c, c OR a2 FROM t6, t8; : SELECT true + 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false + 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true - 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false - 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true * 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false * 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true / 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false / 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT true % 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT false % 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2.3 + true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2.3 + false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2.3 - true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2.3 - false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2.3 * true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2.3 * false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2.3 / true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2.3 / false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT 2.3 % true; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT 2.3 % false; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a1, a1 + 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 - 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 * 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 / 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, a1 % 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2.3 + a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2.3 - a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2.3 * a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2.3 / a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, 2.3 % a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a2, a2 + 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 - 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 * 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 / 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, a2 % 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2.3 + a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2.3 - a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2.3 * a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2.3 / a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, 2.3 % a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : : SELECT c, true + c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, false + c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, true - c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, false - c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, true * c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, false * c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, true / c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, false / c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, true % c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, false % c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, c + true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, c + false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, c - true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, c - false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, c * true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, c * false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, c / true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, c / false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT c, c % true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT c, c % false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : : SELECT a1, c, a1 + c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, a1 - c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, a1 * c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, a1 / c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, a1 % c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, c + a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, c - a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, c * a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, c / a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a1, c, c % a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert FALSE to numeric' : + | - 'Type mismatch: can not convert FALSE to number' : | ... : SELECT a2, c, a2 + c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, a2 - c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, a2 * c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, a2 / c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, a2 % c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, c + a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, c - a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, c * a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, c / a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : SELECT a2, c, c % a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert TRUE to numeric' : + | - 'Type mismatch: can not convert TRUE to number' : | ... : : SELECT true > 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false > 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT true < 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false < 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 > true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 > false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 < true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 < false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, a1 > 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, a1 < 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 > a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 < a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 > 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 < 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 > a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 < a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT c, true > c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false > c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, true < c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false < c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c > true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c > false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c < true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c < false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, c, a1 > c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, a1 < c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c > a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c < a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 > c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 < c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c > a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c < a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT true >= 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false >= 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT true <= 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false <= 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 >= true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 >= false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 <= true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 <= false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, a1 >= 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, a1 <= 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 >= a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 <= a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 >= 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 <= 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 >= a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 <= a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT c, true >= c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false >= c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, true <= c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false <= c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c >= true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c >= false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c <= true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c <= false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, c, a1 >= c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, a1 <= c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c >= a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c <= a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 >= c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 <= c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c >= a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c <= a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT true == 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false == 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT true != 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false != 2.3; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 == true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 == false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 != true; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT 2.3 != false; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, a1 == 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, a1 != 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 == a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, 2.3 != a1 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 == 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 != 2.3 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 == a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, 2.3 != a2 FROM t6 : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT c, true == c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false == c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, true != c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, false != c FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c == true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c == false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c != true FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT c, c != false FROM t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT a1, c, a1 == c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, a1 != c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c == a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, c, c != a1 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 == c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, a2 != c FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c == a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, c, c != a2 FROM t6, t8; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : SELECT true IN (0.1, 1.2, 2.3, 3.4); : @@ -5061,22 +5061,22 @@ SELECT a2 IN (SELECT c FROM t8) FROM t6 LIMIT 1; : SELECT true BETWEEN 0.1 and 9.9; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT false BETWEEN 0.1 and 9.9; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a1, a1 BETWEEN 0.1 and 9.9 FROM t6; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : SELECT a2, a2 BETWEEN 0.1 and 9.9 FROM t6; : | --- : | - null : - | - 'Type mismatch: can not convert real to boolean' : + | - 'Type mismatch: can not convert double to boolean' : | ... : : -- Check interaction of BOOLEAN and TEXT. : @@ -5272,187 +5272,187 @@ SELECT a2, d, d OR a2 FROM t6, t9; : SELECT true > 'abc'; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT false > 'abc'; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT true < 'abc'; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT false < 'abc'; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT 'abc' > true; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT 'abc' > false; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT 'abc' < true; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT 'abc' < false; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : : SELECT d, true > d FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, false > d FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, true < d FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, false < d FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, d > true FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, d > false FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, d < true FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT d, d < false FROM t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : : SELECT a1, d, a1 > d FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a1, d, a1 < d FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a1, d, d > a1 FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a1, d, d < a1 FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a2, d, a2 > d FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a2, d, a2 < d FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a2, d, d > a2 FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : SELECT a2, d, d < a2 FROM t6, t9; : | --- : | - null : - | - 'Type mismatch: can not convert text to boolean' : + | - 'Type mismatch: can not convert string to boolean' : | ... : : SELECT true || 'abc'; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT false || 'abc'; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT 'abc' || false; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT 'abc' || true; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : SELECT d, true || d FROM t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, false || d FROM t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, d || false FROM t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, d || true FROM t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : SELECT d, a1 || d FROM t6, t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, a2 || d FROM t6, t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, d || a1 FROM t6, t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : SELECT d, d || a2 FROM t6, t9; : | --- : | - null : - | - 'Inconsistent types: expected text or varbinary got boolean' : + | - 'Inconsistent types: expected string or varbinary got boolean' : | ... : : -- : diff --git a/test/sql/types.result b/test/sql/types.result : index 219559619..a9a5fd536 100644 : --- a/test/sql/types.result : +++ b/test/sql/types.result : @@ -158,39 +158,39 @@ sp:drop() : box.execute("SELECT 'abc' || 1;") : --- : - null : -- 'Inconsistent types: expected text or varbinary got unsigned' : +- 'Inconsistent types: expected string or varbinary got unsigned' : ... : box.execute("SELECT 'abc' || 1.123;") : --- : - null : -- 'Inconsistent types: expected text or varbinary got real' : +- 'Inconsistent types: expected string or varbinary got double' : ... : box.execute("SELECT 1 || 'abc';") : --- : - null : -- 'Inconsistent types: expected text or varbinary got unsigned' : +- 'Inconsistent types: expected string or varbinary got unsigned' : ... : box.execute("SELECT 1.123 || 'abc';") : --- : - null : -- 'Inconsistent types: expected text or varbinary got real' : +- 'Inconsistent types: expected string or varbinary got double' : ... : box.execute("SELECt 'a' || 'b' || 1;") : --- : - null : -- 'Inconsistent types: expected text or varbinary got unsigned' : +- 'Inconsistent types: expected string or varbinary got unsigned' : ... : -- What is more, they must be of the same type. : -- : box.execute("SELECT 'abc' || randomblob(5);") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT randomblob(5) || 'x';") : --- : - null : -- 'Inconsistent types: expected varbinary got text' : +- 'Inconsistent types: expected varbinary got string' : ... : -- Result of BLOBs concatenation must be BLOB. : -- : @@ -215,17 +215,17 @@ box.execute("INSERT INTO t1 VALUES (randomblob(5));") : box.execute("SELECT * FROM t1 WHERE s LIKE 'blob';") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT * FROM t1 WHERE 'blob' LIKE s;") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT * FROM t1 WHERE 'blob' LIKE x'0000';") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT s LIKE NULL FROM t1;") : --- : @@ -246,12 +246,12 @@ box.execute("INSERT INTO t1 VALUES (1);") : box.execute("SELECT * FROM t1 WHERE s LIKE 'int';") : --- : - null : -- 'Inconsistent types: expected text got unsigned' : +- 'Inconsistent types: expected string got unsigned' : ... : box.execute("SELECT * FROM t1 WHERE 'int' LIKE 4;") : --- : - null : -- 'Inconsistent types: expected text got unsigned' : +- 'Inconsistent types: expected string got unsigned' : ... : box.execute("SELECT NULL LIKE s FROM t1;") : --- : @@ -354,7 +354,7 @@ box.execute("SELECT * FROM tboolean WHERE s1 = 1;") : box.execute("SELECT * FROM tboolean WHERE s1 = 1.123;") : --- : - null : -- 'Type mismatch: can not convert real to boolean' : +- 'Type mismatch: can not convert double to boolean' : ... : box.space.TBOOLEAN:drop() : --- : @@ -1245,12 +1245,12 @@ box.execute("SELECT * FROM t WHERE v = 1") : box.execute("SELECT * FROM t WHERE v = 1.123") : --- : - null : -- 'Type mismatch: can not convert real to varbinary' : +- 'Type mismatch: can not convert double to varbinary' : ... : box.execute("SELECT * FROM t WHERE v = 'str'") : --- : - null : -- 'Type mismatch: can not convert text to varbinary' : +- 'Type mismatch: can not convert string to varbinary' : ... : box.execute("SELECT * FROM t WHERE v = x'616263'") : --- : @@ -1312,12 +1312,12 @@ box.execute("SELECT group_concat(v) FROM t;") : box.execute("SELECT lower(v) FROM t;") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT upper(v) FROM t;") : --- : - null : -- 'Inconsistent types: expected text got varbinary' : +- 'Inconsistent types: expected string got varbinary' : ... : box.execute("SELECT abs(v) FROM t;") : --- : -- : 2.25.1
next prev parent reply other threads:[~2021-07-13 8:52 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-13 7:03 [Tarantool-patches] [PATCH v2 0/4] sql: fix description of type mismatch errors Mergen Imeev via Tarantool-patches 2021-07-13 7:03 ` [Tarantool-patches] [PATCH v2 1/4] sql: truncate values in type mismatch error Mergen Imeev via Tarantool-patches 2021-07-13 8:51 ` Timur Safin via Tarantool-patches 2021-07-13 7:03 ` [Tarantool-patches] [PATCH v2 2/4] sql: properly show " Mergen Imeev via Tarantool-patches 2021-07-13 8:51 ` Timur Safin via Tarantool-patches 2021-07-13 7:03 ` [Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions Mergen Imeev via Tarantool-patches 2021-07-13 8:51 ` Timur Safin via Tarantool-patches [this message] 2021-07-13 7:04 ` [Tarantool-patches] [PATCH v2 4/4] sql: make type mismatch errors more informative Mergen Imeev via Tarantool-patches 2021-07-13 8:51 ` Timur Safin via Tarantool-patches 2021-07-13 10:17 ` Mergen Imeev via Tarantool-patches -- strict thread matches above, loose matches on Subject: below -- 2021-07-05 15:27 [Tarantool-patches] [PATCH v2 0/4] sql: fix description of type mismatch error Mergen Imeev via Tarantool-patches 2021-07-05 15:27 ` [Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions Mergen Imeev via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='03f901d777c4$4bda6be0$e38f43a0$@tarantool.org' \ --to=tarantool-patches@dev.tarantool.org \ --cc=imeevma@tarantool.org \ --cc=tsafin@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox