mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
f918dfc8b2
Class for sending data from server to client (Protocol) This handles both the old ( <= 4.0 ) protocol and then new binary protocol that is used for prepared statements. libmysql/libmysql.c: Jump over reserved bits in the binary protocol libmysqld/Makefile.am: rename of net_pkg.cc to protocol.cc mysql-test/r/case.result: Fixed previously wrong test mysql-test/r/cast.result: Fixed previously wrong test sql/Makefile.am: Rename of net_pkg.cc to protocol.cc sql/field.cc: Binary protocol Added key handling functions for new VARCHAR type sql/field.h: New protocol sql/ha_berkeley.cc: New protocol sql/ha_berkeley.h: New protocol sql/ha_innodb.cc: New protocol sql/ha_myisam.cc: New protocol sql/item.cc: New protocol sql/item.h: New protocol sql/item_func.cc: Removed old code from 3.23 sql/item_func.h: Set cached_result_type as it was previosly used before set sql/item_subselect.cc: Standard make_field() is now good enough sql/item_subselect.h: Use default make_field() sql/item_sum.cc: Clean up Item_sum::make_field() sql/item_sum.h: Use standard make_field() sql/item_timefunc.h: return correct types for casts() Use standard make_field() sql/log_event.cc: New protocol sql/log_event.h: New protocol sql/mysql_priv.h: Move things to protocol.h sql/opt_range.cc: Indentation cleanups + small optimization sql/procedure.h: Use MYSQL_TYPE instead of FIELD_TYPE sql/protocol.cc: Class for sending data from server to client. This handles both the old ( <= 4.0 ) protocol and then new binary protocol that is used for prepared statements. sql/repl_failsafe.cc: New protocol sql/slave.cc: New protocol sql/sql_acl.cc: New protocol sql/sql_base.cc: Move send_fields() to protocol.cc sql/sql_class.cc: New protocol sql/sql_class.h: New protocol sql/sql_db.cc: New protocol sql/sql_error.cc: New protocol sql/sql_handler.cc: New protocol sql/sql_help.cc: New protocol sql/sql_parse.cc: Remove wrong assert (variable was not initalized at this point) sql/sql_prepare.cc: New protocol sql/sql_repl.cc: New protocol sql/sql_select.cc: New protocol sql/sql_show.cc: New protocol sql/sql_string.h: New functions used by the protocol functions sql/sql_table.cc: New protocol sql/structs.h: Make second_part ulong to prepare for ANSI sub-seconds sql/time.cc: New convert function needed by the new protocol functions
39 lines
1.3 KiB
Text
39 lines
1.3 KiB
Text
select CAST(1-2 AS UNSIGNED);
|
|
CAST(1-2 AS UNSIGNED)
|
|
18446744073709551615
|
|
select CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER);
|
|
CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER)
|
|
-1
|
|
select CONVERT('-1',UNSIGNED);
|
|
CONVERT('-1',UNSIGNED)
|
|
18446744073709551615
|
|
select cast(-5 as unsigned) | 1, cast(-5 as unsigned) & -1;
|
|
cast(-5 as unsigned) | 1 cast(-5 as unsigned) & -1
|
|
18446744073709551611 18446744073709551611
|
|
select cast(-5 as unsigned) -1, cast(-5 as unsigned) + 1;
|
|
cast(-5 as unsigned) -1 cast(-5 as unsigned) + 1
|
|
18446744073709551610 18446744073709551612
|
|
select ~5, cast(~5 as signed);
|
|
~5 cast(~5 as signed)
|
|
18446744073709551610 -6
|
|
select cast(5 as unsigned) -6.0;
|
|
cast(5 as unsigned) -6.0
|
|
-1.0
|
|
select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A";
|
|
cast("A" as binary) = "a" cast(BINARY "a" as CHAR) = "A"
|
|
0 1
|
|
select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME);
|
|
cast("2001-1-1" as DATE) cast("2001-1-1" as DATETIME)
|
|
2001-01-01 2001-01-01 00:00:00
|
|
select cast("1:2:3" as TIME);
|
|
cast("1:2:3" as TIME)
|
|
1:02:03
|
|
select cast("2001-1-1" as date) = "2001-01-01";
|
|
cast("2001-1-1" as date) = "2001-01-01"
|
|
0
|
|
select cast("2001-1-1" as datetime) = "2001-01-01 00:00:00";
|
|
cast("2001-1-1" as datetime) = "2001-01-01 00:00:00"
|
|
0
|
|
select cast("1:2:3" as TIME) = "1:02:03";
|
|
cast("1:2:3" as TIME) = "1:02:03"
|
|
0
|