[Tarantool-patches] [PATCH v2 3/4] sql: use proper type names in error descriptions

Timur Safin tsafin at tarantool.org
Tue Jul 13 11:51:39 MSK 2021


Yup, text and real were always confusing before.1

LGTM

: From: imeevma at tarantool.org <imeevma at 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




More information about the Tarantool-patches mailing list