From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 482576EC55; Tue, 13 Jul 2021 10:05:22 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 482576EC55 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1626159922; bh=w0Ewh4JBX1oCf+aycq51KS6j/pSnR6ZCVagYB3tM/hE=; h=To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=OQi+jHA5eMHbq79FMyJGPZmBtvX8TQMC8C6aKUYEXk2Q0Hpi7m4AYL4HO1p7m5fqk gJ3+5EOh4B3faHSBmbEcfuR5cAxAV8FXVYfdEZk4qlfcfc2co/pMdkxQpgh8rN3Y8c gB5E8qPCtNg/k5UCakhjMArL7zu/0WUK7dJqFceE= Received: from smtpng2.i.mail.ru (smtpng2.i.mail.ru [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 13D076EC5A for ; Tue, 13 Jul 2021 10:04:01 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 13D076EC5A Received: by smtpng2.m.smailru.net with esmtpa (envelope-from ) id 1m3CSW-00059e-5e; Tue, 13 Jul 2021 10:04:00 +0300 To: tsafin@tarantool.org Cc: tarantool-patches@dev.tarantool.org Date: Tue, 13 Jul 2021 10:03:59 +0300 Message-Id: <8ca070644eb6f10db748af6801ddaaec3bbef5f8.1626159705.git.imeevma@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-4EC0790: 10 X-7564579A: 78E4E2B564C1792B X-77F55803: 4F1203BC0FB41BD97BB0EF39AD2B33D5A52DC40C1D324F80A71B59DA57F828EE182A05F538085040A582CF580BBCD2FE61073D809AA681122EA7109A2D2674C0DD647A82A4C2024E X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7C3943609F29D73B3EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063797024C28700A46CB8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8A102E7D8E2AD1D5A881AC20DB8063D50117882F4460429724CE54428C33FAD305F5C1EE8F4F765FCAA867293B0326636D2E47CDBA5A96583BD4B6F7A4D31EC0BC014FD901B82EE079FA2833FD35BB23D27C277FBC8AE2E8BAA867293B0326636D2E47CDBA5A96583BA9C0B312567BB231DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B62CFFCC7B69C47339089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975CE68746B1F2AB10C6219413EB6758C1ACF5A42CB3DEFFD32A9C2B6934AE262D3EE7EAB7254005DCED7532B743992DF240BDC6A1CF3F042BAD6DF99611D93F60EF309DFB797F6729CB699F904B3F4130E343918A1A30D5E7FCCB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34AF12ADB97C97CD89FB336307DA11EB0CF6E848D893044C217021F587A3B7C1AC02D4B6B1443DAAE11D7E09C32AA3244C5881DBBE32B5F68BAD553F5145B87DB1A995755A1445935E729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojAZDAgpmGsvZPRj3zy/Gvnw== X-Mailru-Sender: 689FA8AB762F7393C37E3C1AEC41BA5D75CAB232E946F2ED5FDF2F8468BDE11883D72C36FC87018B9F80AB2734326CD2FB559BB5D741EB96352A0ABBE4FDA4210A04DAD6CC59E33667EA787935ED9F1B X-Mras: Ok Subject: [Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Mergen Imeev via Tarantool-patches Reply-To: imeevma@tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" 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') ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) @@ -2941,7 +2941,7 @@ test:do_catchsql_test( SELECT RANDOMBLOB(X'FF') ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) @@ -2951,7 +2951,7 @@ test:do_catchsql_test( SELECT SOUNDEX(X'FF') ]], { -- - 1, "Type mismatch: can not convert x'FF' to text" + 1, "Type mismatch: can not convert x'FF' to string" -- }) 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; ]], { -- - 1, "Type mismatch: can not convert '' to numeric" + 1, "Type mismatch: can not convert '' to number" -- }) @@ -788,7 +788,7 @@ test:do_catchsql_test( SELECT c FROM t6 WHERE a>=123; ]], { -- - 1, "Type mismatch: can not convert '' to numeric" + 1, "Type mismatch: can not convert '' to number" -- }) 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, { -- - 1, "Inconsistent types: expected text or varbinary got unsigned" + 1, "Inconsistent types: expected string or varbinary got unsigned" -- }) @@ -238,7 +238,7 @@ test:do_test( return test:catchsql "SELECT position(34, 123456.78);" end, { -- - 1, "Inconsistent types: expected text or varbinary got real" + 1, "Inconsistent types: expected string or varbinary got double" -- }) @@ -248,7 +248,7 @@ test:do_test( return test:catchsql "SELECT position(x'3334', 123456.78);" end, { -- - 1, "Inconsistent types: expected text or varbinary got real" + 1, "Inconsistent types: expected string or varbinary got double" -- }) @@ -554,7 +554,7 @@ test:do_test( return test:catchsql("SELECT position('x', x'78c3a4e282ac79');") end, { -- - 1, "Inconsistent types: expected text got varbinary" + 1, "Inconsistent types: expected string got varbinary" -- }) @@ -564,7 +564,7 @@ test:do_test( return test:catchsql "SELECT position('y', x'78c3a4e282ac79');" end, { -- - 1, "Inconsistent types: expected text got varbinary" + 1, "Inconsistent types: expected string got varbinary" -- }) @@ -614,7 +614,7 @@ test:do_test( return test:catchsql "SELECT position(x'79', 'xä€y');" end, { -- - 1, "Inconsistent types: expected varbinary got text" + 1, "Inconsistent types: expected varbinary got string" -- }) @@ -624,7 +624,7 @@ test:do_test( return test:catchsql "SELECT position(x'a4', 'xä€y');" end, { -- - 1, "Inconsistent types: expected varbinary got text" + 1, "Inconsistent types: expected varbinary got string" -- }) @@ -634,7 +634,7 @@ test:do_test( return test:catchsql "SELECT position('y', x'78c3a4e282ac79');" end, { -- - 1, "Inconsistent types: expected text got varbinary" + 1, "Inconsistent types: expected string got varbinary" -- }) 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 ]], { -- - 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" -- }) 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; ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) @@ -706,7 +706,7 @@ test:do_catchsql_test( SELECT X'ff' - 1; ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) @@ -716,7 +716,7 @@ test:do_catchsql_test( SELECT X'ff' * 1; ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) @@ -726,7 +726,7 @@ test:do_catchsql_test( SELECT X'ff' / 1; ]], { -- - 1, "Type mismatch: can not convert x'FF' to numeric" + 1, "Type mismatch: can not convert x'FF' to number" -- }) 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