drop schema if exists nullsafe_eq_schema cascade;
NOTICE:  schema "nullsafe_eq_schema" does not exist, skipping
create schema nullsafe_eq_schema;
set current_schema to 'nullsafe_eq_schema';
---------- head ----------
set dolphin.b_compatibility_mode to on;
set dolphin.sql_mode to 'sql_mode_full_group,pipes_as_concat,ansi_quotes,no_zero_date';
drop table if exists test_multi_type_table;
NOTICE:  table "test_multi_type_table" does not exist, skipping
CREATE TABLE test_multi_type_table(`int1` tinyint, `uint1` tinyint unsigned, `int2` smallint, `uint2` smallint unsigned, `int4` integer, `uint4` integer unsigned, `int8` bigint, `uint8` bigint unsigned, `float4` float4, `float8` float8, `numeric` decimal(20, 6), `bit1` bit(1), `bit64` bit(64), `boolean` boolean, `date` date, `time` time, `time(4)` time(4), `datetime` datetime, `datetime(4)` datetime(4) default '2022-11-11 11:11:11', `timestamp` timestamp, `timestamp(4)` timestamp(4) default '2022-11-11 11:11:11', `year` year, `char` char(100), `varchar` varchar(100), `binary` binary(100), `varbinary` varbinary(100), `tinyblob` tinyblob, `blob` blob, `mediumblob` mediumblob, `longblob` longblob, `text` text, `enum_t` enum('a', 'b', 'c'), `set_t` set('a', 'b', 'c'), `json` json);
NOTICE:  CREATE TABLE will create implicit set "test_multi_type_table_set_t_set" for column "test_multi_type_table.set_t"
INSERT INTO test_multi_type_table VALUES(1,1,1,1,1,1,1,1,1,1,1,b'1',b'1',true,'2023-02-05', '19:10:50', '19:10:50.3456', '2023-02-05 19:10:50', '2023-02-05 19:10:50.456', '2023-02-05 19:10:50', '2023-02-05 19:10:50.456', '2023', '1.23a', '1.23a', '1.23a', '1.23a', '1.23a', '1.23a', '1.23a', '1.23a', '1.23a', 'a', 'b,c', json_object('a',1,'b',1));
\x
SELECT
    `tinyblob` <=> `int1` AS `tinyblob_<=>_int1`,
    `tinyblob` <=> `uint1` AS `tinyblob_<=>_uint1`,
    `tinyblob` <=> `int2` AS `tinyblob_<=>_int2`,
    `tinyblob` <=> `uint2` AS `tinyblob_<=>_uint2`,
    `tinyblob` <=> `int4` AS `tinyblob_<=>_int4`,
    `tinyblob` <=> `uint4` AS `tinyblob_<=>_uint4`,
    `tinyblob` <=> `int8` AS `tinyblob_<=>_int8`,
    `tinyblob` <=> `uint8` AS `tinyblob_<=>_uint8`,
    `tinyblob` <=> `float4` AS `tinyblob_<=>_float4`,
    `tinyblob` <=> `float8` AS `tinyblob_<=>_float8`,
    `tinyblob` <=> `numeric` AS `tinyblob_<=>_numeric`,
    `tinyblob` <=> `bit1` AS `tinyblob_<=>_bit1`,
    `tinyblob` <=> `bit64` AS `tinyblob_<=>_bit64`,
    `tinyblob` <=> `boolean` AS `tinyblob_<=>_boolean`,
    `tinyblob` <=> `date` AS `tinyblob_<=>_date`,
    `tinyblob` <=> `time` AS `tinyblob_<=>_time`,
    `tinyblob` <=> `time(4)` AS `tinyblob_<=>_time(4)`,
    `tinyblob` <=> `datetime` AS `tinyblob_<=>_datetime`,
    `tinyblob` <=> `datetime(4)` AS `tinyblob_<=>_datetime(4)`,
    `tinyblob` <=> `timestamp` AS `tinyblob_<=>_timestamp`,
    `tinyblob` <=> `timestamp(4)` AS `tinyblob_<=>_timestamp(4)`,
    `tinyblob` <=> `year` AS `tinyblob_<=>_year`,
    `tinyblob` <=> `char` AS `tinyblob_<=>_char`,
    `tinyblob` <=> `varchar` AS `tinyblob_<=>_varchar`,
    `tinyblob` <=> `binary` AS `tinyblob_<=>_binary`,
    `tinyblob` <=> `varbinary` AS `tinyblob_<=>_varbinary`,
    `tinyblob` <=> `tinyblob` AS `tinyblob_<=>_tinyblob`,
    `tinyblob` <=> `blob` AS `tinyblob_<=>_blob`,
    `tinyblob` <=> `mediumblob` AS `tinyblob_<=>_mediumblob`,
    `tinyblob` <=> `longblob` AS `tinyblob_<=>_longblob`,
    `tinyblob` <=> `text` AS `tinyblob_<=>_text`,
    `tinyblob` <=> `enum_t` AS `tinyblob_<=>_enum_t`,
    `tinyblob` <=> `set_t` AS `tinyblob_<=>_set_t`,
    `tinyblob` <=> `json` AS `tinyblob_<=>_json` FROM test_multi_type_table;
WARNING:  invalid input syntax for type double precision: "1.23a"
CONTEXT:  SQL function "tinyblob_boolean_eq" statement 1
referenced column: tinyblob_<=>_boolean
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "tinyblob_timestamp_eq" statement 1
referenced column: tinyblob_<=>_date
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "tinyblob_datetime_eq" statement 1
referenced column: tinyblob_<=>_datetime
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "tinyblob_datetime_eq" statement 1
referenced column: tinyblob_<=>_datetime(4)
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "tinyblob_timestamp_eq" statement 1
referenced column: tinyblob_<=>_timestamp
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "tinyblob_timestamp_eq" statement 1
referenced column: tinyblob_<=>_timestamp(4)
-[ RECORD 1 ]-------------+--
tinyblob_<=>_int1         | f
tinyblob_<=>_uint1        | f
tinyblob_<=>_int2         | f
tinyblob_<=>_uint2        | f
tinyblob_<=>_int4         | f
tinyblob_<=>_uint4        | f
tinyblob_<=>_int8         | f
tinyblob_<=>_uint8        | f
tinyblob_<=>_float4       | f
tinyblob_<=>_float8       | f
tinyblob_<=>_numeric      | f
tinyblob_<=>_bit1         | f
tinyblob_<=>_bit64        | f
tinyblob_<=>_boolean      | f
tinyblob_<=>_date         | f
tinyblob_<=>_time         | f
tinyblob_<=>_time(4)      | f
tinyblob_<=>_datetime     | f
tinyblob_<=>_datetime(4)  | f
tinyblob_<=>_timestamp    | f
tinyblob_<=>_timestamp(4) | f
tinyblob_<=>_year         | f
tinyblob_<=>_char         | t
tinyblob_<=>_varchar      | t
tinyblob_<=>_binary       | f
tinyblob_<=>_varbinary    | t
tinyblob_<=>_tinyblob     | t
tinyblob_<=>_blob         | t
tinyblob_<=>_mediumblob   | t
tinyblob_<=>_longblob     | t
tinyblob_<=>_text         | t
tinyblob_<=>_enum_t       | f
tinyblob_<=>_set_t        | f
tinyblob_<=>_json         | f

SELECT
    `blob` <=> `int1` AS `blob_<=>_int1`,
    `blob` <=> `uint1` AS `blob_<=>_uint1`,
    `blob` <=> `int2` AS `blob_<=>_int2`,
    `blob` <=> `uint2` AS `blob_<=>_uint2`,
    `blob` <=> `int4` AS `blob_<=>_int4`,
    `blob` <=> `uint4` AS `blob_<=>_uint4`,
    `blob` <=> `int8` AS `blob_<=>_int8`,
    `blob` <=> `uint8` AS `blob_<=>_uint8`,
    `blob` <=> `float4` AS `blob_<=>_float4`,
    `blob` <=> `float8` AS `blob_<=>_float8`,
    `blob` <=> `numeric` AS `blob_<=>_numeric`,
    `blob` <=> `bit1` AS `blob_<=>_bit1`,
    `blob` <=> `bit64` AS `blob_<=>_bit64`,
    `blob` <=> `boolean` AS `blob_<=>_boolean`,
    `blob` <=> `date` AS `blob_<=>_date`,
    `blob` <=> `time` AS `blob_<=>_time`,
    `blob` <=> `time(4)` AS `blob_<=>_time(4)`,
    `blob` <=> `datetime` AS `blob_<=>_datetime`,
    `blob` <=> `datetime(4)` AS `blob_<=>_datetime(4)`,
    `blob` <=> `timestamp` AS `blob_<=>_timestamp`,
    `blob` <=> `timestamp(4)` AS `blob_<=>_timestamp(4)`,
    `blob` <=> `year` AS `blob_<=>_year`,
    `blob` <=> `char` AS `blob_<=>_char`,
    `blob` <=> `varchar` AS `blob_<=>_varchar`,
    `blob` <=> `binary` AS `blob_<=>_binary`,
    `blob` <=> `varbinary` AS `blob_<=>_varbinary`,
    `blob` <=> `tinyblob` AS `blob_<=>_tinyblob`,
    `blob` <=> `blob` AS `blob_<=>_blob`,
    `blob` <=> `mediumblob` AS `blob_<=>_mediumblob`,
    `blob` <=> `longblob` AS `blob_<=>_longblob`,
    `blob` <=> `text` AS `blob_<=>_text`,
    `blob` <=> `enum_t` AS `blob_<=>_enum_t`,
    `blob` <=> `set_t` AS `blob_<=>_set_t`,
    `blob` <=> `json` AS `blob_<=>_json` FROM test_multi_type_table;
WARNING:  invalid input syntax for type double precision: "1.23a"
CONTEXT:  SQL function "blob_boolean_eq" statement 1
referenced column: blob_<=>_boolean
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "blob_timestamp_eq" statement 1
referenced column: blob_<=>_date
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "blob_datetime_eq" statement 1
referenced column: blob_<=>_datetime
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "blob_datetime_eq" statement 1
referenced column: blob_<=>_datetime(4)
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "blob_timestamp_eq" statement 1
referenced column: blob_<=>_timestamp
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "blob_timestamp_eq" statement 1
referenced column: blob_<=>_timestamp(4)
-[ RECORD 1 ]---------+--
blob_<=>_int1         | f
blob_<=>_uint1        | f
blob_<=>_int2         | f
blob_<=>_uint2        | f
blob_<=>_int4         | f
blob_<=>_uint4        | f
blob_<=>_int8         | f
blob_<=>_uint8        | f
blob_<=>_float4       | f
blob_<=>_float8       | f
blob_<=>_numeric      | f
blob_<=>_bit1         | f
blob_<=>_bit64        | f
blob_<=>_boolean      | f
blob_<=>_date         | f
blob_<=>_time         | f
blob_<=>_time(4)      | f
blob_<=>_datetime     | f
blob_<=>_datetime(4)  | f
blob_<=>_timestamp    | f
blob_<=>_timestamp(4) | f
blob_<=>_year         | f
blob_<=>_char         | t
blob_<=>_varchar      | t
blob_<=>_binary       | f
blob_<=>_varbinary    | t
blob_<=>_tinyblob     | t
blob_<=>_blob         | t
blob_<=>_mediumblob   | t
blob_<=>_longblob     | t
blob_<=>_text         | t
blob_<=>_enum_t       | f
blob_<=>_set_t        | f
blob_<=>_json         | f

SELECT
    `mediumblob` <=> `int1` AS `mediumblob_<=>_int1`,
    `mediumblob` <=> `uint1` AS `mediumblob_<=>_uint1`,
    `mediumblob` <=> `int2` AS `mediumblob_<=>_int2`,
    `mediumblob` <=> `uint2` AS `mediumblob_<=>_uint2`,
    `mediumblob` <=> `int4` AS `mediumblob_<=>_int4`,
    `mediumblob` <=> `uint4` AS `mediumblob_<=>_uint4`,
    `mediumblob` <=> `int8` AS `mediumblob_<=>_int8`,
    `mediumblob` <=> `uint8` AS `mediumblob_<=>_uint8`,
    `mediumblob` <=> `float4` AS `mediumblob_<=>_float4`,
    `mediumblob` <=> `float8` AS `mediumblob_<=>_float8`,
    `mediumblob` <=> `numeric` AS `mediumblob_<=>_numeric`,
    `mediumblob` <=> `bit1` AS `mediumblob_<=>_bit1`,
    `mediumblob` <=> `bit64` AS `mediumblob_<=>_bit64`,
    `mediumblob` <=> `boolean` AS `mediumblob_<=>_boolean`,
    `mediumblob` <=> `date` AS `mediumblob_<=>_date`,
    `mediumblob` <=> `time` AS `mediumblob_<=>_time`,
    `mediumblob` <=> `time(4)` AS `mediumblob_<=>_time(4)`,
    `mediumblob` <=> `datetime` AS `mediumblob_<=>_datetime`,
    `mediumblob` <=> `datetime(4)` AS `mediumblob_<=>_datetime(4)`,
    `mediumblob` <=> `timestamp` AS `mediumblob_<=>_timestamp`,
    `mediumblob` <=> `timestamp(4)` AS `mediumblob_<=>_timestamp(4)`,
    `mediumblob` <=> `year` AS `mediumblob_<=>_year`,
    `mediumblob` <=> `char` AS `mediumblob_<=>_char`,
    `mediumblob` <=> `varchar` AS `mediumblob_<=>_varchar`,
    `mediumblob` <=> `binary` AS `mediumblob_<=>_binary`,
    `mediumblob` <=> `varbinary` AS `mediumblob_<=>_varbinary`,
    `mediumblob` <=> `tinyblob` AS `mediumblob_<=>_tinyblob`,
    `mediumblob` <=> `blob` AS `mediumblob_<=>_blob`,
    `mediumblob` <=> `mediumblob` AS `mediumblob_<=>_mediumblob`,
    `mediumblob` <=> `longblob` AS `mediumblob_<=>_longblob`,
    `mediumblob` <=> `text` AS `mediumblob_<=>_text`,
    `mediumblob` <=> `enum_t` AS `mediumblob_<=>_enum_t`,
    `mediumblob` <=> `set_t` AS `mediumblob_<=>_set_t`,
    `mediumblob` <=> `json` AS `mediumblob_<=>_json` FROM test_multi_type_table;
WARNING:  invalid input syntax for type double precision: "1.23a"
CONTEXT:  SQL function "mediumblob_boolean_eq" statement 1
referenced column: mediumblob_<=>_boolean
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "mediumblob_timestamp_eq" statement 1
referenced column: mediumblob_<=>_date
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "mediumblob_datetime_eq" statement 1
referenced column: mediumblob_<=>_datetime
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "mediumblob_datetime_eq" statement 1
referenced column: mediumblob_<=>_datetime(4)
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "mediumblob_timestamp_eq" statement 1
referenced column: mediumblob_<=>_timestamp
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "mediumblob_timestamp_eq" statement 1
referenced column: mediumblob_<=>_timestamp(4)
-[ RECORD 1 ]---------------+--
mediumblob_<=>_int1         | f
mediumblob_<=>_uint1        | f
mediumblob_<=>_int2         | f
mediumblob_<=>_uint2        | f
mediumblob_<=>_int4         | f
mediumblob_<=>_uint4        | f
mediumblob_<=>_int8         | f
mediumblob_<=>_uint8        | f
mediumblob_<=>_float4       | f
mediumblob_<=>_float8       | f
mediumblob_<=>_numeric      | f
mediumblob_<=>_bit1         | f
mediumblob_<=>_bit64        | f
mediumblob_<=>_boolean      | f
mediumblob_<=>_date         | f
mediumblob_<=>_time         | f
mediumblob_<=>_time(4)      | f
mediumblob_<=>_datetime     | f
mediumblob_<=>_datetime(4)  | f
mediumblob_<=>_timestamp    | f
mediumblob_<=>_timestamp(4) | f
mediumblob_<=>_year         | f
mediumblob_<=>_char         | t
mediumblob_<=>_varchar      | t
mediumblob_<=>_binary       | f
mediumblob_<=>_varbinary    | t
mediumblob_<=>_tinyblob     | t
mediumblob_<=>_blob         | t
mediumblob_<=>_mediumblob   | t
mediumblob_<=>_longblob     | t
mediumblob_<=>_text         | t
mediumblob_<=>_enum_t       | f
mediumblob_<=>_set_t        | f
mediumblob_<=>_json         | f

SELECT
    `longblob` <=> `int1` AS `longblob_<=>_int1`,
    `longblob` <=> `uint1` AS `longblob_<=>_uint1`,
    `longblob` <=> `int2` AS `longblob_<=>_int2`,
    `longblob` <=> `uint2` AS `longblob_<=>_uint2`,
    `longblob` <=> `int4` AS `longblob_<=>_int4`,
    `longblob` <=> `uint4` AS `longblob_<=>_uint4`,
    `longblob` <=> `int8` AS `longblob_<=>_int8`,
    `longblob` <=> `uint8` AS `longblob_<=>_uint8`,
    `longblob` <=> `float4` AS `longblob_<=>_float4`,
    `longblob` <=> `float8` AS `longblob_<=>_float8`,
    `longblob` <=> `numeric` AS `longblob_<=>_numeric`,
    `longblob` <=> `bit1` AS `longblob_<=>_bit1`,
    `longblob` <=> `bit64` AS `longblob_<=>_bit64`,
    `longblob` <=> `boolean` AS `longblob_<=>_boolean`,
    `longblob` <=> `date` AS `longblob_<=>_date`,
    `longblob` <=> `time` AS `longblob_<=>_time`,
    `longblob` <=> `time(4)` AS `longblob_<=>_time(4)`,
    `longblob` <=> `datetime` AS `longblob_<=>_datetime`,
    `longblob` <=> `datetime(4)` AS `longblob_<=>_datetime(4)`,
    `longblob` <=> `timestamp` AS `longblob_<=>_timestamp`,
    `longblob` <=> `timestamp(4)` AS `longblob_<=>_timestamp(4)`,
    `longblob` <=> `year` AS `longblob_<=>_year`,
    `longblob` <=> `char` AS `longblob_<=>_char`,
    `longblob` <=> `varchar` AS `longblob_<=>_varchar`,
    `longblob` <=> `binary` AS `longblob_<=>_binary`,
    `longblob` <=> `varbinary` AS `longblob_<=>_varbinary`,
    `longblob` <=> `tinyblob` AS `longblob_<=>_tinyblob`,
    `longblob` <=> `blob` AS `longblob_<=>_blob`,
    `longblob` <=> `mediumblob` AS `longblob_<=>_mediumblob`,
    `longblob` <=> `longblob` AS `longblob_<=>_longblob`,
    `longblob` <=> `text` AS `longblob_<=>_text`,
    `longblob` <=> `enum_t` AS `longblob_<=>_enum_t`,
    `longblob` <=> `set_t` AS `longblob_<=>_set_t`,
    `longblob` <=> `json` AS `longblob_<=>_json` FROM test_multi_type_table;
WARNING:  invalid input syntax for type double precision: "1.23a"
CONTEXT:  SQL function "longblob_boolean_eq" statement 1
referenced column: longblob_<=>_boolean
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "longblob_timestamp_eq" statement 1
referenced column: longblob_<=>_date
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "longblob_datetime_eq" statement 1
referenced column: longblob_<=>_datetime
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "longblob_datetime_eq" statement 1
referenced column: longblob_<=>_datetime(4)
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "longblob_timestamp_eq" statement 1
referenced column: longblob_<=>_timestamp
WARNING:  invalid input syntax for type timestamp: "1.23a"
CONTEXT:  SQL function "longblob_timestamp_eq" statement 1
referenced column: longblob_<=>_timestamp(4)
-[ RECORD 1 ]-------------+--
longblob_<=>_int1         | f
longblob_<=>_uint1        | f
longblob_<=>_int2         | f
longblob_<=>_uint2        | f
longblob_<=>_int4         | f
longblob_<=>_uint4        | f
longblob_<=>_int8         | f
longblob_<=>_uint8        | f
longblob_<=>_float4       | f
longblob_<=>_float8       | f
longblob_<=>_numeric      | f
longblob_<=>_bit1         | f
longblob_<=>_bit64        | f
longblob_<=>_boolean      | f
longblob_<=>_date         | f
longblob_<=>_time         | f
longblob_<=>_time(4)      | f
longblob_<=>_datetime     | f
longblob_<=>_datetime(4)  | f
longblob_<=>_timestamp    | f
longblob_<=>_timestamp(4) | f
longblob_<=>_year         | f
longblob_<=>_char         | t
longblob_<=>_varchar      | t
longblob_<=>_binary       | f
longblob_<=>_varbinary    | t
longblob_<=>_tinyblob     | t
longblob_<=>_blob         | t
longblob_<=>_mediumblob   | t
longblob_<=>_longblob     | t
longblob_<=>_text         | t
longblob_<=>_enum_t       | f
longblob_<=>_set_t        | f
longblob_<=>_json         | f

DROP TABLE test_multi_type_table;
---------- tail ----------
drop schema nullsafe_eq_schema cascade;
reset current_schema;