Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL)
-
None
Description
This script crashes the server:
CREATE OR REPLACE FUNCTION f1() RETURNS DATETIME RETURN '2001-01-01 10:20:30'; |
CREATE OR REPLACE TABLE t1 |
(
|
x INT, |
start_timestamp BIGINT UNSIGNED GENERATED ALWAYS AS ROW START, |
end_timestamp BIGINT UNSIGNED GENERATED ALWAYS AS ROW END, |
PERIOD FOR SYSTEM_TIME(start_timestamp, end_timestamp) |
) ENGINE=InnoDB WITH SYSTEM VERSIONING; |
SELECT * FROM t1 FOR SYSTEM_TIME AS OF f1(); |
10.3 57c3dd991b |
mysqld: /data/src/10.3/sql/item_func.cc:6404: virtual const Type_handler* Item_func_sp::type_handler() const: Assertion `sp_result_field' failed.
|
180506 14:46:14 [ERROR] mysqld got signal 6 ;
|
 |
#7 0x00007fe58d5bcee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
|
#8 0x00005556ff6c3e81 in Item_func_sp::type_handler (this=0x7fe50c0cd4a0) at /data/src/10.3/sql/item_func.cc:6404
|
#9 0x00005556ff259725 in Item::result_type (this=0x7fe50c0cd4a0) at /data/src/10.3/sql/item.h:850
|
#10 0x00005556ff46ebf5 in Vers_history_point::resolve_unit (this=0x7fe50c0ced58, timestamps_only=false) at /data/src/10.3/sql/table.cc:8875
|
#11 0x00005556ff46eb55 in vers_select_conds_t::resolve_units (this=0x7fe50c0ced50, timestamps_only=false) at /data/src/10.3/sql/table.cc:8865
|
#12 0x00005556ff38f514 in st_select_lex::vers_setup_conds (this=0x7fe50c0050d0, thd=0x7fe50c000b00, tables=0x7fe50c0ce738) at /data/src/10.3/sql/sql_select.cc:846
|
#13 0x00005556ff390607 in JOIN::prepare (this=0x7fe50c0cf0f8, tables_init=0x7fe50c0ce738, wild_num=1, conds_init=0x0, og_num=0, order_init=0x0, skip_order_by=false, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0x7fe50c0050d0, unit_arg=0x7fe50c004958) at /data/src/10.3/sql/sql_select.cc:1026
|
#14 0x00005556ff39b813 in mysql_select (thd=0x7fe50c000b00, tables=0x7fe50c0ce738, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fe50c0cf0d8, unit=0x7fe50c004958, select_lex=0x7fe50c0050d0) at /data/src/10.3/sql/sql_select.cc:4132
|
#15 0x00005556ff38ddf2 in handle_select (thd=0x7fe50c000b00, lex=0x7fe50c004890, result=0x7fe50c0cf0d8, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:382
|
#16 0x00005556ff35905d in execute_sqlcom_select (thd=0x7fe50c000b00, all_tables=0x7fe50c0ce738) at /data/src/10.3/sql/sql_parse.cc:6539
|
#17 0x00005556ff34f7be in mysql_execute_command (thd=0x7fe50c000b00) at /data/src/10.3/sql/sql_parse.cc:3768
|
#18 0x00005556ff35ca6e in mysql_parse (thd=0x7fe50c000b00, rawbuf=0x7fe50c0cd078 "SELECT * FROM t1 FOR SYSTEM_TIME AS OF f1()", length=43, parser_state=0x7fe574083620, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8001
|
#19 0x00005556ff34a251 in dispatch_command (command=COM_QUERY, thd=0x7fe50c000b00, packet=0x7fe50c0c4f41 "SELECT * FROM t1 FOR SYSTEM_TIME AS OF f1()", packet_length=43, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1846
|
#20 0x00005556ff348c90 in do_command (thd=0x7fe50c000b00) at /data/src/10.3/sql/sql_parse.cc:1391
|
#21 0x00005556ff4abb45 in do_handle_one_connection (connect=0x5557020c80d0) at /data/src/10.3/sql/sql_connect.cc:1402
|
#22 0x00005556ff4ab8d2 in handle_one_connection (arg=0x5557020c80d0) at /data/src/10.3/sql/sql_connect.cc:1308
|
#23 0x00007fe58f293494 in start_thread (arg=0x7fe574084700) at pthread_create.c:333
|
#24 0x00007fe58d67993f in clone () from /lib/x86_64-linux-gnu/libc.so.6
|
So does this, if I change the function to return a BIGINT (assuming transaction ID):
CREATE OR REPLACE FUNCTION f1() RETURNS BIGINT UNSIGNED RETURN '1'; |
CREATE OR REPLACE TABLE t1 |
(
|
x INT, |
start_timestamp BIGINT UNSIGNED GENERATED ALWAYS AS ROW START, |
end_timestamp BIGINT UNSIGNED GENERATED ALWAYS AS ROW END, |
PERIOD FOR SYSTEM_TIME(start_timestamp, end_timestamp) |
) ENGINE=InnoDB WITH SYSTEM VERSIONING; |
SELECT * FROM t1 FOR SYSTEM_TIME AS OF f1(); |
Attachments
Issue Links
- relates to
-
MDEV-16100 FOR SYSTEM_TIME erroneously resolves string user variables as transaction IDs
- Closed
-
MDEV-16144 Default TIMESTAMP clause for SELECT from versioned
- Closed
-
MDEV-32082 Server crash in find_field_in_table
- Closed