summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBUILD/SETUP.sh27
-rwxr-xr-xBUILD/compile-amd64-gcov17
-rwxr-xr-xBUILD/compile-amd64-gprof9
-rwxr-xr-xBUILD/compile-pentium-gcov13
-rwxr-xr-xBUILD/compile-pentium-gprof4
-rwxr-xr-xBUILD/compile-pentium64-gcov17
-rwxr-xr-xBUILD/compile-pentium64-gprof9
-rw-r--r--client/mysql.cc54
-rw-r--r--client/mysql_upgrade.c74
-rw-r--r--client/mysqldump.c4
-rw-r--r--client/mysqlslap.c32
-rw-r--r--client/mysqltest.c937
-rw-r--r--configure.in10
-rw-r--r--extra/yassl/include/openssl/crypto.h1
-rw-r--r--extra/yassl/include/openssl/des_old.h1
-rw-r--r--extra/yassl/include/openssl/evp.h10
-rw-r--r--extra/yassl/include/openssl/hmac.h1
-rw-r--r--extra/yassl/include/openssl/objects.h1
-rw-r--r--extra/yassl/include/openssl/prefix_ssl.h3
-rw-r--r--extra/yassl/include/openssl/sha.h1
-rw-r--r--extra/yassl/include/openssl/ssl.h3
-rw-r--r--extra/yassl/include/yassl_int.hpp2
-rw-r--r--extra/yassl/src/handshake.cpp4
-rw-r--r--extra/yassl/src/socket_wrapper.cpp4
-rw-r--r--extra/yassl/src/ssl.cpp6
-rw-r--r--extra/yassl/src/yassl_int.cpp1
-rw-r--r--extra/yassl/taocrypt/src/coding.cpp5
-rw-r--r--extra/yassl/taocrypt/src/crypto.cpp5
-rw-r--r--include/Makefile.am10
-rw-r--r--include/my_global.h12
-rw-r--r--include/my_pthread.h32
-rw-r--r--include/mysql/plugin.h27
-rw-r--r--include/mysql_h.ic739
-rw-r--r--libmysql/libmysql.c10
-rw-r--r--libmysqld/lib_sql.cc11
-rw-r--r--mysql-test/include/deadlock.inc27
-rw-r--r--mysql-test/include/handler.inc33
-rw-r--r--mysql-test/include/mix1.inc30
-rw-r--r--mysql-test/include/partition_layout.inc1
-rw-r--r--mysql-test/include/query_cache_sql_prepare.inc218
-rw-r--r--mysql-test/include/rpl_udf.inc20
-rw-r--r--mysql-test/include/wait_condition.inc5
-rw-r--r--mysql-test/lib/mtr_cases.pl9
-rw-r--r--mysql-test/lib/mtr_misc.pl79
-rw-r--r--mysql-test/lib/mtr_process.pl21
-rw-r--r--mysql-test/lib/mtr_report.pl108
-rw-r--r--mysql-test/lib/mtr_timer.pl31
-rwxr-xr-xmysql-test/mysql-test-run.pl134
-rw-r--r--mysql-test/r/comments.result15
-rw-r--r--mysql-test/r/ctype_ascii.result177
-rw-r--r--mysql-test/r/date_formats.result64
-rw-r--r--mysql-test/r/deadlock_innodb.result11
-rw-r--r--mysql-test/r/events.result29
-rw-r--r--mysql-test/r/events_logs_tests.result6
-rw-r--r--mysql-test/r/func_misc.result4
-rw-r--r--mysql-test/r/handler_innodb.result20
-rw-r--r--mysql-test/r/handler_myisam.result20
-rw-r--r--mysql-test/r/information_schema.result26
-rw-r--r--mysql-test/r/information_schema_db.result2
-rw-r--r--mysql-test/r/innodb.result41
-rw-r--r--mysql-test/r/innodb_mysql.result18
-rw-r--r--mysql-test/r/insert_notembedded.result19
-rw-r--r--mysql-test/r/lock_multi.result7
-rw-r--r--mysql-test/r/mysql.result2
-rw-r--r--mysql-test/r/mysql_upgrade.result32
-rw-r--r--mysql-test/r/mysqlbinlog2.result26
-rw-r--r--mysql-test/r/mysqlslap.result4
-rw-r--r--mysql-test/r/mysqltest.result25
-rw-r--r--mysql-test/r/parser.result10
-rw-r--r--mysql-test/r/parser_precedence.result747
-rw-r--r--mysql-test/r/partition_pruning.result4
-rw-r--r--mysql-test/r/query_cache.result29
-rw-r--r--mysql-test/r/query_cache_ps_no_prot.result158
-rw-r--r--mysql-test/r/query_cache_ps_ps_prot.result158
-rw-r--r--mysql-test/r/query_cache_with_views.result (renamed from mysql-test/r/view_query_cache.result)0
-rw-r--r--mysql-test/r/select.result57
-rw-r--r--mysql-test/r/sp-error.result12
-rw-r--r--mysql-test/r/sp.result52
-rw-r--r--mysql-test/r/sp_notembedded.result23
-rw-r--r--mysql-test/r/status.result5
-rw-r--r--mysql-test/r/strict.result30
-rw-r--r--mysql-test/r/udf.result24
-rw-r--r--mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc (renamed from mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc)0
-rw-r--r--mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc (renamed from mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc)0
-rw-r--r--mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc (renamed from mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc)0
-rw-r--r--mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc (renamed from mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc)0
-rw-r--r--mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc (renamed from mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc)0
-rw-r--r--mysql-test/suite/binlog/r/binlog_innodb.result33
-rw-r--r--mysql-test/suite/binlog/t/binlog_innodb.test39
-rw-r--r--mysql-test/suite/funcs_1/datadict/datadict_priv.inc107
-rw-r--r--mysql-test/suite/funcs_1/datadict/processlist_priv.inc432
-rw-r--r--mysql-test/suite/funcs_1/datadict/processlist_val.inc333
-rw-r--r--mysql-test/suite/funcs_1/include/ndb_tb2.inc2
-rw-r--r--mysql-test/suite/funcs_1/r/a_processlist_priv_no_prot.result469
-rw-r--r--mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result174
-rw-r--r--mysql-test/suite/funcs_1/r/b_processlist_priv_ps.result469
-rw-r--r--mysql-test/suite/funcs_1/r/b_processlist_val_ps.result174
-rw-r--r--mysql-test/suite/funcs_1/r/innodb_views.result538
-rw-r--r--mysql-test/suite/funcs_1/r/memory_views.result538
-rw-r--r--mysql-test/suite/funcs_1/r/myisam_views.result492
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_cursors.result2
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_func_view.result1334
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_storedproc_07.result8
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_storedproc_08.result108
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_0102.result4
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_03.result2
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_03e.result26
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_0407.result2
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_08.result7
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_09.result2
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result2
-rw-r--r--mysql-test/suite/funcs_1/r/ndb_views.result643
-rw-r--r--mysql-test/suite/funcs_1/t/a_processlist_priv_no_prot.test36
-rw-r--r--mysql-test/suite/funcs_1/t/a_processlist_val_no_prot.test31
-rw-r--r--mysql-test/suite/funcs_1/t/b_processlist_priv_ps.test35
-rw-r--r--mysql-test/suite/funcs_1/t/b_processlist_val_ps.test30
-rw-r--r--mysql-test/suite/funcs_1/views/views_master.inc136
-rw-r--r--mysql-test/suite/funcs_2/r/ndb_charset.result248
-rw-r--r--mysql-test/suite/im/r/im_cmd_line.result (renamed from mysql-test/r/im_cmd_line.result)0
-rw-r--r--mysql-test/suite/im/r/im_daemon_life_cycle.result (renamed from mysql-test/r/im_daemon_life_cycle.result)0
-rw-r--r--mysql-test/suite/im/r/im_instance_conf.result (renamed from mysql-test/r/im_instance_conf.result)0
-rw-r--r--mysql-test/suite/im/r/im_life_cycle.result (renamed from mysql-test/r/im_life_cycle.result)0
-rw-r--r--mysql-test/suite/im/r/im_options.result (renamed from mysql-test/r/im_options.result)0
-rw-r--r--mysql-test/suite/im/r/im_utils.result (renamed from mysql-test/r/im_utils.result)0
-rw-r--r--mysql-test/suite/im/t/disabled.def20
-rw-r--r--mysql-test/suite/im/t/im_check_env.inc (renamed from mysql-test/include/im_check_env.inc)0
-rw-r--r--mysql-test/suite/im/t/im_cmd_line.imtest (renamed from mysql-test/t/im_cmd_line.imtest)2
-rw-r--r--mysql-test/suite/im/t/im_daemon_life_cycle-im.opt (renamed from mysql-test/t/im_daemon_life_cycle-im.opt)0
-rw-r--r--mysql-test/suite/im/t/im_daemon_life_cycle.imtest (renamed from mysql-test/t/im_daemon_life_cycle.imtest)48
-rw-r--r--mysql-test/suite/im/t/im_instance_conf-im.opt (renamed from mysql-test/t/im_instance_conf-im.opt)0
-rw-r--r--mysql-test/suite/im/t/im_instance_conf.imtest (renamed from mysql-test/t/im_instance_conf.imtest)2
-rw-r--r--mysql-test/suite/im/t/im_life_cycle-im.opt (renamed from mysql-test/t/im_life_cycle-im.opt)0
-rw-r--r--mysql-test/suite/im/t/im_life_cycle.imtest (renamed from mysql-test/t/im_life_cycle.imtest)14
-rw-r--r--mysql-test/suite/im/t/im_options-im.opt (renamed from mysql-test/t/im_options-im.opt)0
-rw-r--r--mysql-test/suite/im/t/im_options.imtest (renamed from mysql-test/t/im_options.imtest)2
-rw-r--r--mysql-test/suite/im/t/im_utils-im.opt (renamed from mysql-test/t/im_utils-im.opt)0
-rw-r--r--mysql-test/suite/im/t/im_utils.imtest (renamed from mysql-test/t/im_utils.imtest)8
-rwxr-xr-xmysql-test/suite/im/t/kill_n_check.sh (renamed from mysql-test/t/kill_n_check.sh)0
-rwxr-xr-xmysql-test/suite/im/t/log.sh (renamed from mysql-test/t/log.sh)0
-rw-r--r--mysql-test/suite/im/t/utils.sh (renamed from mysql-test/t/utils.sh)0
-rwxr-xr-xmysql-test/suite/im/t/wait_for_process.sh (renamed from mysql-test/t/wait_for_process.sh)0
-rwxr-xr-xmysql-test/suite/im/t/wait_for_socket.sh (renamed from mysql-test/t/wait_for_socket.sh)0
-rw-r--r--mysql-test/suite/ndb/r/ndb_dd_ddl.result6
-rw-r--r--mysql-test/suite/ndb/t/disabled.def2
-rw-r--r--mysql-test/suite/ndb/t/ndb_dd_ddl.test17
-rw-r--r--mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc24
-rw-r--r--mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc66
-rw-r--r--mysql-test/suite/parts/inc/partition_alter3.inc6
-rw-r--r--mysql-test/suite/parts/inc/partition_alter_1.inc9
-rw-r--r--mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc34
-rw-r--r--mysql-test/suite/parts/inc/partition_check.inc18
-rw-r--r--mysql-test/suite/parts/inc/partition_date.inc4
-rw-r--r--mysql-test/suite/parts/inc/partition_datetime.inc4
-rw-r--r--mysql-test/suite/parts/inc/partition_decimal.inc14
-rw-r--r--mysql-test/suite/parts/inc/partition_directory.inc27
-rw-r--r--mysql-test/suite/parts/inc/partition_double.inc14
-rw-r--r--mysql-test/suite/parts/inc/partition_enum.inc27
-rw-r--r--mysql-test/suite/parts/inc/partition_float.inc14
-rw-r--r--mysql-test/suite/parts/inc/partition_layout_check1.inc1
-rw-r--r--mysql-test/suite/parts/inc/partition_layout_check2.inc1
-rw-r--r--mysql-test/suite/parts/inc/partition_methods1.inc32
-rw-r--r--mysql-test/suite/parts/inc/partition_set.inc38
-rw-r--r--mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc11
-rw-r--r--mysql-test/suite/parts/inc/partition_syntax.inc10
-rw-r--r--mysql-test/suite/parts/inc/partition_syntax_1.inc24
-rw-r--r--mysql-test/suite/parts/inc/partition_time.inc4
-rw-r--r--mysql-test/suite/parts/inc/partition_timestamp.inc4
-rw-r--r--mysql-test/suite/parts/inc/partition_value.inc12
-rw-r--r--mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result996
-rw-r--r--mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result996
-rw-r--r--mysql-test/suite/parts/r/part_supported_sql_func_innodb.result4268
-rw-r--r--mysql-test/suite/parts/r/part_supported_sql_func_myisam.result4268
-rw-r--r--mysql-test/suite/parts/r/partition_alter3_innodb.result157
-rw-r--r--mysql-test/suite/parts/r/partition_alter3_myisam.result533
-rw-r--r--mysql-test/suite/parts/r/partition_basic_innodb.result1343
-rw-r--r--mysql-test/suite/parts/r/partition_basic_myisam.result1049
-rw-r--r--mysql-test/suite/parts/r/partition_datetime_innodb.result32
-rw-r--r--mysql-test/suite/parts/r/partition_datetime_myisam.result32
-rw-r--r--mysql-test/suite/parts/r/partition_decimal_innodb.result92
-rw-r--r--mysql-test/suite/parts/r/partition_decimal_myisam.result92
-rw-r--r--mysql-test/suite/parts/r/partition_float_myisam.result292
-rw-r--r--mysql-test/suite/parts/r/partition_syntax_innodb.result10
-rw-r--r--mysql-test/suite/parts/r/partition_syntax_myisam.result10
-rw-r--r--mysql-test/suite/parts/t/disabled.def5
-rw-r--r--mysql-test/suite/parts/t/partition_char_innodb.test1
-rw-r--r--mysql-test/suite/parts/t/partition_datetime_innodb.test1
-rw-r--r--mysql-test/suite/parts/t/partition_decimal_innodb.test2
-rw-r--r--mysql-test/suite/parts/t/partition_float_innodb.test2
-rw-r--r--mysql-test/suite/parts/t/partition_int_innodb.test1
-rw-r--r--mysql-test/suite/parts/t/partition_special_innodb.test1
-rw-r--r--mysql-test/suite/parts/t/rpl_partition.test1
-rw-r--r--mysql-test/suite/rpl/r/rpl_binlog_grant.result50
-rw-r--r--mysql-test/suite/rpl/r/rpl_ps.result50
-rw-r--r--mysql-test/suite/rpl/r/rpl_udf.result44
-rw-r--r--mysql-test/suite/rpl/t/rpl_binlog_grant.test43
-rw-r--r--mysql-test/suite/rpl/t/rpl_ps.test95
-rw-r--r--mysql-test/suite/rpl/t/rpl_ssl.test15
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result855
-rw-r--r--mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result855
-rw-r--r--mysql-test/suite/rpl_ndb/t/disabled.def2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test3
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt1
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt2
-rw-r--r--mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test2
-rw-r--r--mysql-test/t/backup.test11
-rw-r--r--mysql-test/t/bootstrap.test7
-rw-r--r--mysql-test/t/comments.test31
-rw-r--r--mysql-test/t/csv.test5
-rw-r--r--mysql-test/t/ctype_ascii.test13
-rw-r--r--mysql-test/t/disabled.def10
-rw-r--r--mysql-test/t/events.test55
-rw-r--r--mysql-test/t/events_logs_tests.test6
-rw-r--r--mysql-test/t/func_misc.test8
-rw-r--r--mysql-test/t/information_schema.test25
-rw-r--r--mysql-test/t/information_schema_chmod.test2
-rw-r--r--mysql-test/t/innodb.test63
-rw-r--r--mysql-test/t/insert_notembedded.test35
-rw-r--r--mysql-test/t/loaddata.test24
-rw-r--r--mysql-test/t/lock_multi.test15
-rw-r--r--mysql-test/t/mysql.test8
-rw-r--r--mysql-test/t/mysqladmin.test3
-rw-r--r--mysql-test/t/mysqlbinlog2.test3
-rw-r--r--mysql-test/t/mysqlslap.test2
-rw-r--r--mysql-test/t/mysqltest.test125
-rw-r--r--mysql-test/t/parser.test22
-rw-r--r--mysql-test/t/parser_precedence.test333
-rw-r--r--mysql-test/t/ps.test3
-rw-r--r--mysql-test/t/ps_1general.test2
-rw-r--r--mysql-test/t/query_cache.test37
-rw-r--r--mysql-test/t/query_cache_with_views.test (renamed from mysql-test/t/view_query_cache.test)0
-rw-r--r--mysql-test/t/select.test60
-rw-r--r--mysql-test/t/sp-destruct.test1
-rw-r--r--mysql-test/t/sp-error.test15
-rw-r--r--mysql-test/t/sp.test54
-rw-r--r--mysql-test/t/sp_notembedded.test65
-rw-r--r--mysql-test/t/status.test28
-rw-r--r--mysql-test/t/trigger.test3
-rw-r--r--mysql-test/t/udf.test36
-rw-r--r--mysys/mf_iocache2.c40
-rw-r--r--mysys/my_thr_init.c18
-rw-r--r--mysys/test_charset.c2
-rw-r--r--netware/Makefile.am13
-rw-r--r--netware/isamchk.def12
-rw-r--r--netware/isamlog.def11
-rw-r--r--netware/pack_isam.def13
-rw-r--r--scripts/make_binary_distribution.sh2
-rw-r--r--scripts/mysql_system_tables.sql1
-rw-r--r--scripts/mysqlhotcopy.sh32
-rw-r--r--sql/event_data_objects.cc8
-rw-r--r--sql/event_data_objects.h9
-rw-r--r--sql/event_db_repository.cc15
-rw-r--r--sql/event_db_repository.h13
-rw-r--r--sql/event_queue.cc8
-rw-r--r--sql/event_queue.h17
-rw-r--r--sql/event_scheduler.cc9
-rw-r--r--sql/event_scheduler.h18
-rw-r--r--sql/events.cc12
-rw-r--r--sql/events.h16
-rw-r--r--sql/field.cc8
-rw-r--r--sql/field.h7
-rw-r--r--sql/field_conv.cc3
-rw-r--r--sql/ha_ndbcluster.cc50
-rw-r--r--sql/ha_ndbcluster_binlog.cc13
-rw-r--r--sql/ha_ndbcluster_binlog.h6
-rw-r--r--sql/ha_partition.cc39
-rw-r--r--sql/ha_partition.h1
-rw-r--r--sql/handler.cc7
-rw-r--r--sql/item.cc4
-rw-r--r--sql/item_cmpfunc.h19
-rw-r--r--sql/item_create.cc330
-rw-r--r--sql/item_create.h8
-rw-r--r--sql/item_func.cc3
-rw-r--r--sql/item_subselect.cc2
-rw-r--r--sql/item_timefunc.cc2
-rw-r--r--sql/lock.cc25
-rw-r--r--sql/log.cc56
-rw-r--r--sql/log_event.cc4
-rw-r--r--sql/log_event.h15
-rw-r--r--sql/mysql_priv.h8
-rw-r--r--sql/mysqld.cc13
-rw-r--r--sql/opt_range.cc3
-rw-r--r--sql/rpl_utility.h2
-rw-r--r--sql/share/charsets/ascii.xml6
-rw-r--r--sql/slave.h12
-rw-r--r--sql/sp.cc144
-rw-r--r--sql/sp.h11
-rw-r--r--sql/sp_head.cc25
-rw-r--r--sql/sp_head.h11
-rw-r--r--sql/sql_analyse.cc2
-rw-r--r--sql/sql_analyse.h2
-rw-r--r--sql/sql_base.cc68
-rw-r--r--sql/sql_cache.cc72
-rw-r--r--sql/sql_cache.h8
-rw-r--r--sql/sql_class.cc11
-rw-r--r--sql/sql_class.h79
-rw-r--r--sql/sql_connect.cc5
-rw-r--r--sql/sql_db.cc185
-rw-r--r--sql/sql_handler.cc131
-rw-r--r--sql/sql_insert.cc2
-rw-r--r--sql/sql_lex.cc67
-rw-r--r--sql/sql_lex.h34
-rw-r--r--sql/sql_parse.cc25
-rw-r--r--sql/sql_plugin.cc2
-rw-r--r--sql/sql_prepare.cc49
-rw-r--r--sql/sql_select.cc64
-rw-r--r--sql/sql_show.cc16
-rw-r--r--sql/sql_table.cc18
-rw-r--r--sql/sql_trigger.cc16
-rw-r--r--sql/sql_update.cc8
-rw-r--r--sql/sql_view.cc6
-rw-r--r--sql/sql_yacc.yy13894
-rw-r--r--sql/table.h10
-rw-r--r--sql/udf_example.c35
-rw-r--r--sql/udf_example.def2
-rw-r--r--storage/example/ha_example.cc5
-rw-r--r--storage/example/plug.in2
-rw-r--r--storage/federated/ha_federated.cc12
-rw-r--r--storage/innobase/dict/dict0boot.c65
-rw-r--r--storage/innobase/dict/dict0crea.c2
-rw-r--r--storage/innobase/dict/dict0dict.c163
-rw-r--r--storage/innobase/dict/dict0load.c9
-rw-r--r--storage/innobase/dict/dict0mem.c80
-rw-r--r--storage/innobase/handler/ha_innodb.cc877
-rw-r--r--storage/innobase/handler/ha_innodb.h8
-rw-r--r--storage/innobase/ibuf/ibuf0ibuf.c20
-rw-r--r--storage/innobase/include/dict0dict.h50
-rw-r--r--storage/innobase/include/dict0mem.h28
-rw-r--r--storage/innobase/include/lock0lock.h2
-rw-r--r--storage/innobase/include/mem0mem.ic12
-rw-r--r--storage/innobase/include/row0mysql.h1
-rw-r--r--storage/innobase/include/row0sel.h10
-rw-r--r--storage/innobase/include/sync0rw.ic2
-rw-r--r--storage/innobase/include/trx0trx.h28
-rw-r--r--storage/innobase/include/ut0mem.h2
-rw-r--r--storage/innobase/lock/lock0lock.c7
-rw-r--r--storage/innobase/log/log0recv.c7
-rw-r--r--storage/innobase/mtr/mtr0log.c28
-rw-r--r--storage/innobase/pars/pars0pars.c3
-rw-r--r--storage/innobase/row/row0mysql.c4
-rw-r--r--storage/innobase/row/row0sel.c176
-rw-r--r--storage/innobase/srv/srv0srv.c4
-rw-r--r--storage/innobase/trx/trx0sys.c2
-rw-r--r--storage/innobase/trx/trx0trx.c20
-rw-r--r--storage/ndb/tools/restore/Restore.cpp5
-rw-r--r--strings/ctype-extra.c6
-rw-r--r--tests/mysql_client_test.c73
-rw-r--r--vio/viossl.c142
348 files changed, 26611 insertions, 20118 deletions
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 6b3708f475f..e940f7a3371 100755
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -105,7 +105,7 @@ if [ "x$warning_mode" != "xpedantic" ]; then
# Added unless --with-debug=full
debug_extra_cflags="-O1 -Wuninitialized"
else
- warnings="-W -Wall -ansi -pedantic -Wno-long-long -D_POSIX_SOURCE"
+ warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE"
c_warnings="$warnings"
cxx_warnings="$warnings -std=c++98"
# NOTE: warning mode should not influence optimize/debug mode.
@@ -207,3 +207,28 @@ then
echo "$CC" | grep "ccache" > /dev/null || CC="ccache $CC"
echo "$CXX" | grep "ccache" > /dev/null || CXX="ccache $CXX"
fi
+
+# gcov
+
+# The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the
+# code with profiling information used by gcov.
+# The -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl.
+# The -DHAVE_gcov enables code to write out coverage info even when crashing.
+
+gcov_compile_flags="-fprofile-arcs -ftest-coverage"
+gcov_compile_flags="$gcov_compile_flags -DDISABLE_TAO_ASM"
+gcov_compile_flags="$gcov_compile_flags -DMYSQL_SERVER_SUFFIX=-gcov -DHAVE_gcov"
+
+# GCC4 needs -fprofile-arcs -ftest-coverage on the linker command line (as well
+# as on the compiler command line), and this requires setting LDFLAGS for BDB.
+
+gcov_link_flags="-fprofile-arcs -ftest-coverage"
+
+gcov_configs="--disable-shared"
+
+# gprof
+
+gprof_compile_flags="-O2 -pg -g"
+
+gprof_link_flags="--disable-shared $static_link"
+
diff --git a/BUILD/compile-amd64-gcov b/BUILD/compile-amd64-gcov
new file mode 100755
index 00000000000..239a4aed0fb
--- /dev/null
+++ b/BUILD/compile-amd64-gcov
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+path=`dirname $0`
+. "$path/SETUP.sh"
+
+# Need to disable ccache, or we loose the gcov-needed compiler output files.
+CCACHE_DISABLE=1
+export CCACHE_DISABLE
+
+export LDFLAGS="$gcov_link_flags"
+
+extra_flags="$amd64_cflags $debug_cflags $max_cflags $gcov_compile_flags"
+c_warnings="$c_warnings $debug_extra_warnings"
+cxx_warnings="$cxx_warnings $debug_extra_warnings"
+extra_configs="$amd64_configs $debug_configs $gcov_configs $max_configs"
+
+. "$path/FINISH.sh"
diff --git a/BUILD/compile-amd64-gprof b/BUILD/compile-amd64-gprof
new file mode 100755
index 00000000000..6cfb8a4302c
--- /dev/null
+++ b/BUILD/compile-amd64-gprof
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+path=`dirname $0`
+. "$path/SETUP.sh"
+
+extra_flags="$amd64_cflags $gprof_compile_flags"
+extra_configs="$amd64_configs $debug_configs $gprof_link_flags"
+
+. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov
index 77de5867d48..42666b2632c 100755
--- a/BUILD/compile-pentium-gcov
+++ b/BUILD/compile-pentium-gcov
@@ -20,18 +20,11 @@ export CCACHE_GCOV_VERSION_ENABLED
path=`dirname $0`
. "$path/SETUP.sh"
-# GCC4 needs -fprofile-arcs -ftest-coverage on the linker command line (as well
-# as on the compiler command line), and this requires setting LDFLAGS for BDB.
-export LDFLAGS="-fprofile-arcs -ftest-coverage"
+export LDFLAGS="$gcov_link_flags"
-# The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the
-# code with profiling information used by gcov.
-# The -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl.
-# The -DHAVE_gcov enables code to write out coverage info even when crashing.
-extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY $debug_extra_flags $debug_cflags $max_cflags -DMYSQL_SERVER_SUFFIX=-gcov -DHAVE_gcov"
-extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
-extra_configs="$extra_configs $max_configs"
+extra_flags="$pentium_cflags $debug_cflags $max_cflags $gcov_compile_flags"
c_warnings="$c_warnings $debug_extra_warnings"
cxx_warnings="$cxx_warnings $debug_extra_warnings"
+extra_configs="$pentium_configs $debug_configs $gcov_configs $max_configs"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium-gprof b/BUILD/compile-pentium-gprof
index aa74de0b1b2..4aebc1d2e02 100755
--- a/BUILD/compile-pentium-gprof
+++ b/BUILD/compile-pentium-gprof
@@ -3,7 +3,7 @@
path=`dirname $0`
. "$path/SETUP.sh"
-extra_flags="$pentium_cflags -O2 -pg -g"
-extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
+extra_flags="$pentium_cflags $gprof_compile_flags"
+extra_configs="$pentium_configs $debug_configs $gprof_link_flags"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium64-gcov b/BUILD/compile-pentium64-gcov
new file mode 100755
index 00000000000..5a99b7f8796
--- /dev/null
+++ b/BUILD/compile-pentium64-gcov
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+path=`dirname $0`
+. "$path/SETUP.sh"
+
+# Need to disable ccache, or we loose the gcov-needed compiler output files.
+CCACHE_DISABLE=1
+export CCACHE_DISABLE
+
+export LDFLAGS="$gcov_link_flags"
+
+extra_flags="$pentium64_cflags $debug_cflags $max_cflags $gcov_compile_flags"
+c_warnings="$c_warnings $debug_extra_warnings"
+cxx_warnings="$cxx_warnings $debug_extra_warnings"
+extra_configs="$pentium64_configs $debug_configs $gcov_configs $max_configs"
+
+. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium64-gprof b/BUILD/compile-pentium64-gprof
new file mode 100755
index 00000000000..f64dee6d196
--- /dev/null
+++ b/BUILD/compile-pentium64-gprof
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+path=`dirname $0`
+. "$path/SETUP.sh"
+
+extra_flags="$pentium64_cflags $gprof_compile_flags"
+extra_configs="$pentium64_configs $debug_configs $gprof_link_flags"
+
+. "$path/FINISH.sh"
diff --git a/client/mysql.cc b/client/mysql.cc
index 8e6a4dd99ae..794f252853a 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1263,6 +1263,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
char buff[80], *pos, *out;
COMMANDS *com;
bool need_space= 0;
+ bool ss_comment= 0;
DBUG_ENTER("add_line");
if (!line[0] && buffer.is_empty())
@@ -1311,22 +1312,36 @@ static bool add_line(String &buffer,char *line,char *in_string,
}
if ((com=find_command(NullS,(char) inchar)))
{
- const String tmp(line,(uint) (out-line), charset_info);
- buffer.append(tmp);
- if ((*com->func)(&buffer,pos-1) > 0)
- DBUG_RETURN(1); // Quit
- if (com->takes_params)
- {
- for (pos++ ;
- *pos && (*pos != *delimiter ||
- !is_prefix(pos + 1, delimiter + 1)) ; pos++)
- ; // Remove parameters
- if (!*pos)
- pos--;
- else
- pos+= delimiter_length - 1; // Point at last delim char
- }
- out=line;
+ const String tmp(line,(uint) (out-line), charset_info);
+ buffer.append(tmp);
+ if ((*com->func)(&buffer,pos-1) > 0)
+ DBUG_RETURN(1); // Quit
+ if (com->takes_params)
+ {
+ if (ss_comment)
+ {
+ /*
+ If a client-side macro appears inside a server-side comment,
+ discard all characters in the comment after the macro (that is,
+ until the end of the comment rather than the next delimiter)
+ */
+ for (pos++; *pos && (*pos != '*' || *(pos + 1) != '/'); pos++)
+ ;
+ pos--;
+ }
+ else
+ {
+ for (pos++ ;
+ *pos && (*pos != *delimiter ||
+ !is_prefix(pos + 1, delimiter + 1)) ; pos++)
+ ; // Remove parameters
+ if (!*pos)
+ pos--;
+ else
+ pos+= delimiter_length - 1; // Point at last delim char
+ }
+ }
+ out=line;
}
else
{
@@ -1386,7 +1401,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
out=line;
}
}
- else if (*ml_comment && inchar == '*' && *(pos + 1) == '/')
+ else if (*ml_comment && !ss_comment && inchar == '*' && *(pos + 1) == '/')
{
pos++;
*ml_comment= 0;
@@ -1394,6 +1409,11 @@ static bool add_line(String &buffer,char *line,char *in_string,
}
else
{ // Add found char to buffer
+ if (!*in_string && inchar == '/' && *(pos + 1) == '*' &&
+ *(pos + 2) == '!')
+ ss_comment= 1;
+ else if (!*in_string && ss_comment && inchar == '*' && *(pos + 1) == '/')
+ ss_comment= 0;
if (inchar == *in_string)
*in_string= 0;
else if (!*ml_comment && !*in_string &&
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
index 698cbeaaaa1..334269720b4 100644
--- a/client/mysql_upgrade.c
+++ b/client/mysql_upgrade.c
@@ -352,16 +352,11 @@ static my_bool get_full_path_to_executable(char* path)
/*
Look for the tool in the same directory as mysql_upgrade.
-
- When running in a not yet installed build the the program
- will exist but it need to be invoked via it's libtool wrapper.
- Check if the found tool can executed and if not look in the
- directory one step higher up where the libtool wrapper normally
- is found
*/
static void find_tool(char *tool_path, const char *tool_name)
{
+ size_t path_len;
char path[FN_REFLEN];
DYNAMIC_STRING ds_tmp;
DBUG_ENTER("find_tool");
@@ -395,38 +390,52 @@ static void find_tool(char *tool_path, const char *tool_name)
path[0]= 0;
}
}
- do
- {
- size_t path_len;
- DBUG_PRINT("enter", ("path: %s", path));
- /* Chop off last char(since it might be a /) */
- path[max((strlen(path)-1), 0)]= 0;
+ DBUG_PRINT("info", ("path: '%s'", path));
+
+ /* Chop off binary name (i.e mysql-upgrade) from path */
+ dirname_part(path, path, &path_len);
+
+ /*
+ When running in a not yet installed build and using libtool,
+ the program(mysql_upgrade) will be in .libs/ and executed
+ through a libtool wrapper in order to use the dynamic libraries
+ from this build. The same must be done for the tools(mysql and
+ mysqlcheck). Thus if path ends in .libs/, step up one directory
+ and execute the tools from there
+ */
+ path[max(path_len-1, 0)]= 0; /* Chop off last / */
+ if (strncmp(path + dirname_length(path), ".libs", 5) == 0)
+ {
+ DBUG_PRINT("info", ("Chopping off .libs from '%s'", path));
- /* Chop off last dir part */
+ /* Chop off .libs */
dirname_part(path, path, &path_len);
+ }
- /* Format name of the tool to search for */
- fn_format(tool_path, tool_name,
- path, "", MYF(MY_REPLACE_DIR));
- verbose("Looking for '%s' in: %s", tool_name, tool_path);
+ DBUG_PRINT("info", ("path: '%s'", path));
- /* Make sure the tool exists */
- if (my_access(tool_path, F_OK) != 0)
- die("Can't find '%s'", tool_path);
+ /* Format name of the tool to search for */
+ fn_format(tool_path, tool_name,
+ path, "", MYF(MY_REPLACE_DIR));
- /*
- Make sure it can be executed, otherwise try again
- in higher level directory
- */
- }
- while(run_tool(tool_path,
- &ds_tmp, /* Get output from command, discard*/
- "--help",
- "2>&1",
- IF_WIN("> NUL", "> /dev/null"),
- NULL));
+ verbose("Looking for '%s' in: %s", tool_name, tool_path);
+
+ /* Make sure the tool exists */
+ if (my_access(tool_path, F_OK) != 0)
+ die("Can't find '%s'", tool_path);
+
+ /*
+ Make sure it can be executed
+ */
+ if (run_tool(tool_path,
+ &ds_tmp, /* Get output from command, discard*/
+ "--help",
+ "2>&1",
+ IF_WIN("> NUL", "> /dev/null"),
+ NULL))
+ die("Can't execute '%s'", tool_path);
dynstr_free(&ds_tmp);
@@ -457,6 +466,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
ret= run_tool(mysql_path,
ds_res,
+ "--no-defaults",
ds_args.str,
"--database=mysql",
"--batch", /* Turns off pager etc. */
@@ -468,6 +478,7 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
NULL);
my_close(fd, MYF(0));
+ my_delete(query_file_path, MYF(0));
DBUG_RETURN(ret);
}
@@ -618,6 +629,7 @@ static int run_mysqlcheck_upgrade(void)
verbose("Running 'mysqlcheck'...");
return run_tool(mysqlcheck_path,
NULL, /* Send output from mysqlcheck directly to screen */
+ "--no-defaults",
ds_args.str,
"--check-upgrade",
"--all-databases",
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 5062b466ad5..25c11b5e71d 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -1308,8 +1308,8 @@ static char *cover_definer_clause_in_trigger(const char *trigger_def_str,
@note This function will go away when WL#3995 is implemented.
- @param[in] def_str CREATE FUNCTION|PROCEDURE statement string.
- @param[in] def_length length of the def_str.
+ @param[in] def_str CREATE FUNCTION|PROCEDURE statement string.
+ @param[in] def_str_length length of the def_str.
@return pointer to the new allocated query string.
*/
diff --git a/client/mysqlslap.c b/client/mysqlslap.c
index 78f9efe8bd2..02a0cbd04c5 100644
--- a/client/mysqlslap.c
+++ b/client/mysqlslap.c
@@ -1416,15 +1416,15 @@ get_options(int *argc,char ***argv)
tmp_string[sbuf.st_size]= '\0';
my_close(data_file,MYF(0));
if (user_supplied_pre_statements)
- actual_queries= parse_delimiter(tmp_string, &pre_statements,
- delimiter[0]);
+ (void)parse_delimiter(tmp_string, &pre_statements,
+ delimiter[0]);
my_free(tmp_string, MYF(0));
}
else if (user_supplied_pre_statements)
{
- actual_queries= parse_delimiter(user_supplied_pre_statements,
- &pre_statements,
- delimiter[0]);
+ (void)parse_delimiter(user_supplied_pre_statements,
+ &pre_statements,
+ delimiter[0]);
}
if (user_supplied_post_statements && my_stat(user_supplied_post_statements, &sbuf, MYF(0)))
@@ -1447,14 +1447,14 @@ get_options(int *argc,char ***argv)
tmp_string[sbuf.st_size]= '\0';
my_close(data_file,MYF(0));
if (user_supplied_post_statements)
- parse_delimiter(tmp_string, &post_statements,
- delimiter[0]);
+ (void)parse_delimiter(tmp_string, &post_statements,
+ delimiter[0]);
my_free(tmp_string, MYF(0));
}
else if (user_supplied_post_statements)
{
- parse_delimiter(user_supplied_post_statements, &post_statements,
- delimiter[0]);
+ (void)parse_delimiter(user_supplied_post_statements, &post_statements,
+ delimiter[0]);
}
if (verbose >= 2)
@@ -1673,6 +1673,7 @@ static int
run_statements(MYSQL *mysql, statement *stmt)
{
statement *ptr;
+ MYSQL_RES *result;
DBUG_ENTER("run_statements");
for (ptr= stmt; ptr && ptr->length; ptr= ptr->next)
@@ -1683,6 +1684,11 @@ run_statements(MYSQL *mysql, statement *stmt)
my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
exit(1);
}
+ if (mysql_field_count(mysql))
+ {
+ result= mysql_store_result(mysql);
+ mysql_free_result(result);
+ }
}
DBUG_RETURN(0);
@@ -1813,6 +1819,13 @@ limit_not_met:
{
mysql_close(mysql);
+ if (!(mysql= mysql_init(NULL)))
+ {
+ fprintf(stderr,"%s: mysql_init() failed ERROR : %s\n",
+ my_progname, mysql_error(mysql));
+ exit(0);
+ }
+
if (slap_connect(mysql))
goto end;
}
@@ -2002,7 +2015,6 @@ parse_delimiter(const char *script, statement **stmt, char delm)
ptr+= retstr - ptr + 1;
if (isspace(*ptr))
ptr++;
- count++;
}
if (ptr != script+length)
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 1c98ea3bf50..979c8de3656 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -60,16 +60,10 @@
#define QUERY_SEND_FLAG 1
#define QUERY_REAP_FLAG 2
- enum {
- RESULT_OK= 0,
- RESULT_CONTENT_MISMATCH= 1,
- RESULT_LENGTH_MISMATCH= 2
- };
-
enum {
OPT_SKIP_SAFEMALLOC=OPT_MAX_CLIENT_OPTION,
OPT_PS_PROTOCOL, OPT_SP_PROTOCOL, OPT_CURSOR_PROTOCOL, OPT_VIEW_PROTOCOL,
- OPT_MAX_CONNECT_RETRIES, OPT_MARK_PROGRESS, OPT_LOG_DIR
+ OPT_MAX_CONNECT_RETRIES, OPT_MARK_PROGRESS, OPT_LOG_DIR, OPT_TAIL_LINES
};
static int record= 0, opt_sleep= -1;
@@ -103,6 +97,9 @@ static char line_buffer[MAX_DELIMITER_LENGTH], *line_buffer_pos= line_buffer;
static uint start_lineno= 0; /* Start line of current command */
static uint my_end_arg= 0;
+/* Number of lines of the result to include in failure report */
+static uint opt_tail_lines= 0;
+
static char delimiter[MAX_DELIMITER_LENGTH]= ";";
static uint delimiter_length= 1;
@@ -224,7 +221,7 @@ struct st_connection
#endif /*EMBEDDED_LIBRARY*/
};
struct st_connection connections[128];
-struct st_connection* cur_con, *next_con, *connections_end;
+struct st_connection* cur_con= NULL, *next_con, *connections_end;
/*
List of commands in mysqltest
@@ -441,7 +438,6 @@ void free_tmp_sh_file();
void free_win_path_patterns();
#endif
-static int eval_result = 0;
/* For replace_column */
static char *replace_column[MAX_COLUMNS];
@@ -489,11 +485,11 @@ void handle_no_error(struct st_command*);
pthread_attr_t cn_thd_attrib;
/*
- send_one_query executes query in separate thread what is
+ send_one_query executes query in separate thread, which is
necessary in embedded library to run 'send' in proper way.
This implementation doesn't handle errors returned
by mysql_send_query. It's technically possible, though
- i don't see where it is needed.
+ I don't see where it is needed.
*/
pthread_handler_t send_one_query(void *arg)
{
@@ -594,6 +590,142 @@ void do_eval(DYNAMIC_STRING *query_eval, const char *query,
}
+/*
+ Run query and dump the result to stdout in vertical format
+
+ NOTE! This function should be safe to call when an error
+ has occured and thus any further errors will be ignored(although logged)
+
+ SYNOPSIS
+ show_query
+ mysql - connection to use
+ query - query to run
+
+*/
+
+static void show_query(MYSQL* mysql, const char* query)
+{
+ MYSQL_RES* res;
+ DBUG_ENTER("show_query");
+
+ if (!mysql)
+ DBUG_VOID_RETURN;
+
+ if (mysql_query(mysql, query))
+ {
+ log_msg("Error running query '%s': %d %s",
+ query, mysql_errno(mysql), mysql_error(mysql));
+ DBUG_VOID_RETURN;
+ }
+
+ if ((res= mysql_store_result(mysql)) == NULL)
+ {
+ /* No result set returned */
+ DBUG_VOID_RETURN;
+ }
+
+ {
+ MYSQL_ROW row;
+ unsigned int i;
+ unsigned int row_num= 0;
+ unsigned int num_fields= mysql_num_fields(res);
+ MYSQL_FIELD *fields= mysql_fetch_fields(res);
+
+ fprintf(stderr, "=== %s ===\n", query);
+ while ((row= mysql_fetch_row(res)))
+ {
+ unsigned long *lengths= mysql_fetch_lengths(res);
+ row_num++;
+
+ fprintf(stderr, "---- %d. ----\n", row_num);
+ for(i= 0; i < num_fields; i++)
+ {
+ fprintf(stderr, "%s\t%.*s\n",
+ fields[i].name,
+ (int)lengths[i], row[i] ? row[i] : "NULL");
+ }
+ }
+ for (i= 0; i < strlen(query)+8; i++)
+ fprintf(stderr, "=");
+ fprintf(stderr, "\n\n");
+ }
+ mysql_free_result(res);
+
+ DBUG_VOID_RETURN;
+}
+
+
+/*
+ Show any warnings just before the error. Since the last error
+ is added to the warning stack, only print @@warning_count-1 warnings.
+
+ NOTE! This function should be safe to call when an error
+ has occured and this any further errors will be ignored(although logged)
+
+ SYNOPSIS
+ show_warnings_before_error
+ mysql - connection to use
+
+*/
+
+static void show_warnings_before_error(MYSQL* mysql)
+{
+ MYSQL_RES* res;
+ const char* query= "SHOW WARNINGS";
+ DBUG_ENTER("show_warnings_before_error");
+
+ if (!mysql)
+ DBUG_VOID_RETURN;
+
+ if (mysql_query(mysql, query))
+ {
+ log_msg("Error running query '%s': %d %s",
+ query, mysql_errno(mysql), mysql_error(mysql));
+ DBUG_VOID_RETURN;
+ }
+
+ if ((res= mysql_store_result(mysql)) == NULL)
+ {
+ /* No result set returned */
+ DBUG_VOID_RETURN;
+ }
+
+ if (mysql_num_rows(res) <= 1)
+ {
+ /* Don't display the last row, it's "last error" */
+ }
+ else
+ {
+ MYSQL_ROW row;
+ unsigned int row_num= 0;
+ unsigned int num_fields= mysql_num_fields(res);
+
+ fprintf(stderr, "\nWarnings from just before the error:\n");
+ while ((row= mysql_fetch_row(res)))
+ {
+ unsigned int i;
+ unsigned long *lengths= mysql_fetch_lengths(res);
+
+ if (++row_num >= mysql_num_rows(res))
+ {
+ /* Don't display the last row, it's "last error" */
+ break;
+ }
+
+ for(i= 0; i < num_fields; i++)
+ {
+ fprintf(stderr, "%.*s ", (int)lengths[i],
+ row[i] ? row[i] : "NULL");
+ }
+ fprintf(stderr, "\n");
+ }
+ }
+ mysql_free_result(res);
+
+ DBUG_VOID_RETURN;
+}
+
+
enum arg_type
{
ARG_STRING,
@@ -672,6 +804,15 @@ void check_command_args(struct st_command *command,
command->first_word_len, command->query);
}
+ /* Check for too many arguments passed */
+ ptr= command->last_argument;
+ while(ptr <= command->end)
+ {
+ if (*ptr && *ptr != ' ')
+ die("Extra argument '%s' passed to '%.*s'",
+ ptr, command->first_word_len, command->query);
+ ptr++;
+ }
DBUG_VOID_RETURN;
}
@@ -865,6 +1006,24 @@ void die(const char *fmt, ...)
fprintf(stderr, "\n");
fflush(stderr);
+ /* Show results from queries just before failure */
+ if (ds_res.length && opt_tail_lines)
+ {
+ int tail_lines= opt_tail_lines;
+ char* show_from= ds_res.str + ds_res.length - 1;
+ while(show_from > ds_res.str && tail_lines > 0 )
+ {
+ show_from--;
+ if (*show_from == '\n')
+ tail_lines--;
+ }
+ fprintf(stderr, "\nThe result from queries just before the failure was:\n");
+ if (show_from > ds_res.str)
+ fprintf(stderr, "< snip >");
+ fprintf(stderr, "%s", show_from);
+ fflush(stderr);
+ }
+
/* Dump the result that has been accumulated so far to .log file */
if (result_file_name && ds_res.length)
dump_result_to_log_file(ds_res.str, ds_res.length);
@@ -873,6 +1032,13 @@ void die(const char *fmt, ...)
if (result_file_name && ds_warning_messages.length)
dump_warning_messages();
+ /*
+ Help debugging by displaying any warnings that might have
+ been produced prior to the error
+ */
+ if (cur_con)
+ show_warnings_before_error(&cur_con->mysql);
+
cleanup_and_exit(1);
}
@@ -976,11 +1142,10 @@ void warning_msg(const char *fmt, ...)
void log_msg(const char *fmt, ...)
{
va_list args;
- char buff[512];
+ char buff[1024];
size_t len;
DBUG_ENTER("log_msg");
- memset(buff, 0, sizeof(buff));
va_start(args, fmt);
len= my_vsnprintf(buff, sizeof(buff)-1, fmt, args);
va_end(args);
@@ -993,77 +1158,372 @@ void log_msg(const char *fmt, ...)
/*
- Compare content of the string ds to content of file fname
+ Read a file and append it to ds
+
+ SYNOPSIS
+ cat_file
+ ds - pointer to dynamic string where to add the files content
+ filename - name of the file to read
+
*/
-int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
+void cat_file(DYNAMIC_STRING* ds, const char* filename)
{
- MY_STAT stat_info;
- char *tmp, *res_ptr;
- char eval_file[FN_REFLEN];
- int res;
- uint res_len;
int fd;
- DYNAMIC_STRING res_ds;
- DBUG_ENTER("dyn_string_cmp");
+ uint len;
+ char buff[512];
- if (!test_if_hard_path(fname))
+ if ((fd= my_open(filename, O_RDONLY, MYF(0))) < 0)
+ die("Failed to open file '%s'", filename);
+ while((len= my_read(fd, (uchar*)&buff,
+ sizeof(buff), MYF(0))) > 0)
{
- strxmov(eval_file, opt_basedir, fname, NullS);
- fn_format(eval_file, eval_file, "", "", MY_UNPACK_FILENAME);
+ char *p= buff, *start= buff;
+ while (p < buff+len)
+ {
+ /* Convert cr/lf to lf */
+ if (*p == '\r' && *(p+1) && *(p+1)== '\n')
+ {
+ /* Add fake newline instead of cr and output the line */
+ *p= '\n';
+ p++; /* Step past the "fake" newline */
+ dynstr_append_mem(ds, start, p-start);
+ p++; /* Step past the "fake" newline */
+ start= p;
+ }
+ else
+ p++;
+ }
+ /* Output any chars that migh be left */
+ dynstr_append_mem(ds, start, p-start);
}
- else
- fn_format(eval_file, fname, "", "", MY_UNPACK_FILENAME);
+ my_close(fd, MYF(0));
+}
- if (!my_stat(eval_file, &stat_info, MYF(MY_WME)))
- die(NullS);
- if (!eval_result && (uint) stat_info.st_size != ds->length)
+
+/*
+ Run the specified command with popen
+
+ SYNOPSIS
+ run_command
+ cmd - command to execute(should be properly quoted
+ ds_res- pointer to dynamic string where to store the result
+
+*/
+
+static int run_command(char* cmd,
+ DYNAMIC_STRING *ds_res)
+{
+ char buf[512]= {0};
+ FILE *res_file;
+ int error;
+
+ if (!(res_file= popen(cmd, "r")))
+ die("popen(\"%s\", \"r\") failed", cmd);
+
+ while (fgets(buf, sizeof(buf), res_file))
{
- DBUG_PRINT("info",("Size differs: result size: %u file size: %lu",
- (uint) ds->length, (ulong) stat_info.st_size));
- DBUG_PRINT("info",("result: '%s'", ds->str));
- DBUG_RETURN(RESULT_LENGTH_MISMATCH);
+ DBUG_PRINT("info", ("buf: %s", buf));
+ if(ds_res)
+ {
+ /* Save the output of this command in the supplied string */
+ dynstr_append(ds_res, buf);
+ }
+ else
+ {
+ /* Print it directly on screen */
+ fprintf(stdout, "%s", buf);
+ }
}
- if (!(tmp = (char*) my_malloc(stat_info.st_size + 1, MYF(MY_WME))))
+
+ error= pclose(res_file);
+ return WEXITSTATUS(error);
+}
+
+
+/*
+ Run the specified tool with variable number of arguments
+
+ SYNOPSIS
+ run_tool
+ tool_path - the name of the tool to run
+ ds_res - pointer to dynamic string where to store the result
+ ... - variable number of arguments that will be properly
+ quoted and appended after the tool's name
+
+*/
+
+static int run_tool(const char *tool_path, DYNAMIC_STRING *ds_res, ...)
+{
+ int ret;
+ const char* arg;
+ va_list args;
+ DYNAMIC_STRING ds_cmdline;
+
+ DBUG_ENTER("run_tool");
+ DBUG_PRINT("enter", ("tool_path: %s", tool_path));
+
+ if (init_dynamic_string(&ds_cmdline, IF_WIN("\"", ""), FN_REFLEN, FN_REFLEN))
die("Out of memory");
- if ((fd = my_open(eval_file, O_RDONLY, MYF(MY_WME))) < 0)
- die("Failed to open file %s", eval_file);
- if (my_read(fd, (uchar*)tmp, stat_info.st_size, MYF(MY_WME|MY_NABP)))
- die("Failed to read from file %s, errno: %d", eval_file, errno);
- tmp[stat_info.st_size] = 0;
- init_dynamic_string(&res_ds, "", stat_info.st_size+256, 256);
- if (eval_result)
- {
- do_eval(&res_ds, tmp, tmp + stat_info.st_size, FALSE);
- res_ptr= res_ds.str;
- res_len= res_ds.length;
- if (res_len != ds->length)
+ dynstr_append_os_quoted(&ds_cmdline, tool_path, NullS);
+ dynstr_append(&ds_cmdline, " ");
+
+ va_start(args, ds_res);
+
+ while ((arg= va_arg(args, char *)))
+ {
+ /* Options should be os quoted */
+ if (strncmp(arg, "--", 2) == 0)
+ dynstr_append_os_quoted(&ds_cmdline, arg, NullS);
+ else
+ dynstr_append(&ds_cmdline, arg);
+ dynstr_append(&ds_cmdline, " ");
+ }
+
+ va_end(args);
+
+#ifdef __WIN__
+ dynstr_append(&ds_cmdline, "\"");
+#endif
+
+ DBUG_PRINT("info", ("Running: %s", ds_cmdline.str));
+ ret= run_command(ds_cmdline.str, ds_res);
+ DBUG_PRINT("exit", ("ret: %d", ret));
+ dynstr_free(&ds_cmdline);
+ DBUG_RETURN(ret);
+}
+
+
+/*
+ Show the diff of two files using the systems builtin diff
+ command. If no such diff command exist, just dump the content
+ of the two files and inform about how to get "diff"
+
+ SYNOPSIS
+ show_diff
+ ds - pointer to dynamic string where to add the diff(may be NULL)
+ filename1 - name of first file
+ filename2 - name of second file
+
+*/
+
+void show_diff(DYNAMIC_STRING* ds,
+ const char* filename1, const char* filename2)
+{
+
+ DYNAMIC_STRING ds_tmp;
+
+ if (init_dynamic_string(&ds_tmp, "", 256, 256))
+ die("Out of memory");
+
+ /* First try with unified diff */
+ if (run_tool("diff",
+ &ds_tmp, /* Get output from diff in ds_tmp */
+ "-u",
+ filename1,
+ filename2,
+ "2>&1",
+ NULL) > 1) /* Most "diff" tools return >1 if error */
+ {
+ dynstr_set(&ds_tmp, "");
+
+ /* Fallback to context diff with "diff -c" */
+ if (run_tool("diff",
+ &ds_tmp, /* Get output from diff in ds_tmp */
+ "-c",
+ filename1,
+ filename2,
+ "2>&1",
+ NULL) > 1) /* Most "diff" tools return >1 if error */
{
- res= RESULT_LENGTH_MISMATCH;
- goto err;
+ /*
+ Fallback to dump both files to result file and inform
+ about installing "diff"
+ */
+ dynstr_set(&ds_tmp, "");
+
+ dynstr_append(&ds_tmp,
+"\n"
+"The two files differ but it was not possible to execute 'diff' in\n"
+"order to show only the difference, tried both 'diff -u' or 'diff -c'.\n"
+"Instead the whole content of the two files was shown for you to diff manually. ;)\n\n"
+"To get a better report you should install 'diff' on your system, which you\n"
+"for example can get from http://www.gnu.org/software/diffutils/diffutils.html\n"
+#ifdef __WIN__
+"or http://gnuwin32.sourceforge.net/packages/diffutils.htm\n"
+#endif
+"\n");
+
+ dynstr_append(&ds_tmp, " --- ");
+ dynstr_append(&ds_tmp, filename1);
+ dynstr_append(&ds_tmp, " >>>\n");
+ cat_file(&ds_tmp, filename1);
+ dynstr_append(&ds_tmp, "<<<\n --- ");
+ dynstr_append(&ds_tmp, filename1);
+ dynstr_append(&ds_tmp, " >>>\n");
+ cat_file(&ds_tmp, filename2);
+ dynstr_append(&ds_tmp, "<<<<\n");
}
}
+
+ if (ds)
+ {
+ /* Add the diff to output */
+ dynstr_append_mem(ds, ds_tmp.str, ds_tmp.length);
+ }
else
{
- res_ptr = tmp;
- res_len = stat_info.st_size;
+ /* Print diff directly to stdout */
+ fprintf(stderr, "%s\n", ds_tmp.str);
}
+
+ dynstr_free(&ds_tmp);
- res= (memcmp(res_ptr, ds->str, res_len)) ?
- RESULT_CONTENT_MISMATCH : RESULT_OK;
+}
-err:
- if (res && eval_result)
- str_to_file(fn_format(eval_file, fname, "", ".eval",
- MY_REPLACE_EXT),
- res_ptr, res_len);
- dynstr_free(&res_ds);
- my_free(tmp, MYF(0));
- my_close(fd, MYF(MY_WME));
+enum compare_files_result_enum {
+ RESULT_OK= 0,
+ RESULT_CONTENT_MISMATCH= 1,
+ RESULT_LENGTH_MISMATCH= 2
+};
+
+/*
+ Compare two files, given a fd to the first file and
+ name of the second file
+
+ SYNOPSIS
+ compare_files2
+ fd - Open file descriptor of the first file
+ filename2 - Name of second file
+
+ RETURN VALUES
+ According to the values in "compare_files_result_enum"
+
+*/
- DBUG_RETURN(res);
+int compare_files2(File fd, const char* filename2)
+{
+ int error= RESULT_OK;
+ File fd2;
+ uint len, len2;
+ char buff[512], buff2[512];
+
+ if ((fd2= my_open(filename2, O_RDONLY, MYF(0))) < 0)
+ {
+ my_close(fd, MYF(0));
+ die("Failed to open second file: '%s'", filename2);
+ }
+ while((len= my_read(fd, (uchar*)&buff,
+ sizeof(buff), MYF(0))) > 0)
+ {
+ if ((len2= my_read(fd2, (uchar*)&buff2,
+ sizeof(buff2), MYF(0))) < len)
+ {
+ /* File 2 was smaller */
+ error= RESULT_LENGTH_MISMATCH;
+ break;
+ }
+ if (len2 > len)
+ {
+ /* File 1 was smaller */
+ error= RESULT_LENGTH_MISMATCH;
+ break;
+ }
+ if ((memcmp(buff, buff2, len)))
+ {
+ /* Content of this part differed */
+ error= RESULT_CONTENT_MISMATCH;
+ break;
+ }
+ }
+ if (!error && my_read(fd2, (uchar*)&buff2,
+ sizeof(buff2), MYF(0)) > 0)
+ {
+ /* File 1 was smaller */
+ error= RESULT_LENGTH_MISMATCH;
+ }
+
+ my_close(fd2, MYF(0));
+
+ return error;
+}
+
+
+/*
+ Compare two files, given their filenames
+
+ SYNOPSIS
+ compare_files
+ filename1 - Name of first file
+ filename2 - Name of second file
+
+ RETURN VALUES
+ See 'compare_files2'
+
+*/
+
+int compare_files(const char* filename1, const char* filename2)
+{
+ File fd;
+ int error;
+
+ if ((fd= my_open(filename1, O_RDONLY, MYF(0))) < 0)
+ die("Failed to open first file: '%s'", filename1);
+
+ error= compare_files2(fd, filename2);
+
+ my_close(fd, MYF(0));
+
+ return error;
+}
+
+
+/*
+ Compare content of the string in ds to content of file fname
+
+ SYNOPSIS
+ dyn_string_cmp
+ ds - Dynamic string containing the string o be compared
+ fname - Name of file to compare with
+
+ RETURN VALUES
+ See 'compare_files2'
+*/
+
+int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
+{
+ int error;
+ File fd;
+ char temp_file_path[FN_REFLEN];
+
+ DBUG_ENTER("dyn_string_cmp");
+ DBUG_PRINT("enter", ("fname: %s", fname));
+
+ if ((fd= create_temp_file(temp_file_path, NULL,
+ "tmp", O_CREAT | O_SHARE | O_RDWR,
+ MYF(MY_WME))) < 0)
+ die("Failed to create temporary file for ds");
+
+ /* Write ds to temporary file and set file pos to beginning*/
+ if (my_write(fd, ds->str, ds->length,
+ MYF(MY_FNABP | MY_WME)) ||
+ my_seek(fd, 0, SEEK_SET, MYF(0)) == MY_FILEPOS_ERROR)
+ {
+ my_close(fd, MYF(0));
+ /* Remove the temporary file */
+ my_delete(temp_file_path, MYF(0));
+ die("Failed to write file '%s'", temp_file_path);
+ }
+
+ error= compare_files2(fd, fname);
+
+ my_close(fd, MYF(0));
+ /* Remove the temporary file */
+ my_delete(temp_file_path, MYF(0));
+
+ DBUG_RETURN(error);
}
@@ -1081,20 +1541,39 @@ err:
void check_result(DYNAMIC_STRING* ds)
{
+ const char* mess= "Result content mismatch\n";
+
DBUG_ENTER("check_result");
DBUG_ASSERT(result_file_name);
+ DBUG_PRINT("enter", ("result_file_name: %s", result_file_name));
+
+ if (access(result_file_name, F_OK) != 0)
+ die("The specified result file does not exist: '%s'", result_file_name);
switch (dyn_string_cmp(ds, result_file_name)) {
case RESULT_OK:
break; /* ok */
case RESULT_LENGTH_MISMATCH:
- dump_result_to_reject_file(ds->str, ds->length);
- die("Result length mismatch");
- break;
+ mess= "Result length mismatch\n";
+ /* Fallthrough */
case RESULT_CONTENT_MISMATCH:
- dump_result_to_reject_file(ds->str, ds->length);
- die("Result content mismatch");
+ {
+ /*
+ Result mismatched, dump results to .reject file
+ and then show the diff
+ */
+ char reject_file[FN_REFLEN];
+ str_to_file(fn_format(reject_file, result_file_name, opt_logdir, ".reject",
+ *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT :
+ MY_REPLACE_EXT),
+ ds->str, ds->length);
+
+ dynstr_set(ds, NULL); /* Don't create a .log file */
+
+ show_diff(NULL, result_file_name, reject_file);
+ die(mess);
break;
+ }
default: /* impossible */
die("Unknown error code from dyn_string_cmp()");
}
@@ -1109,7 +1588,7 @@ void check_result(DYNAMIC_STRING* ds)
indicating that test is not supported
SYNOPSIS
- check_result
+ check_require
ds - content to be checked
fname - name of file to check against
@@ -1439,40 +1918,22 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
die("Query '%s' didn't return a result set", ds_query.str);
dynstr_free(&ds_query);
- if ((row = mysql_fetch_row(res)) && row[0])
+ if ((row= mysql_fetch_row(res)) && row[0])
{
/*
- Concatenate all row results with tab in between to allow us to work
- with results from many columns (for example from SHOW VARIABLES)
+ Concatenate all fields in the first row with tab in between
+ and assign that string to the $variable
*/
DYNAMIC_STRING result;
uint i;
ulong *lengths;
-#ifdef NOT_YET
- MYSQL_FIELD *fields= mysql_fetch_fields(res);
-#endif
- init_dynamic_string(&result, "", 2048, 2048);
+ init_dynamic_string(&result, "", 512, 512);
lengths= mysql_fetch_lengths(res);
- for (i=0; i < mysql_num_fields(res); i++)
+ for (i= 0; i < mysql_num_fields(res); i++)
{
- if (row[0])
+ if (row[i])
{
-#ifdef NOT_YET
- /* Add to <var_name>_<col_name> */
- uint j;
- char var_col_name[MAX_VAR_NAME_LENGTH];
- uint length= snprintf(var_col_name, MAX_VAR_NAME_LENGTH,
- "$%s_%s", var->name, fields[i].name);
- /* Convert characters not allowed in variable names to '_' */
- for (j= 1; j < length; j++)
- {
- if (!my_isvar(charset_info,var_col_name[j]))
- var_col_name[j]= '_';
- }
- var_set(var_col_name, var_col_name + length,
- row[i], row[i] + lengths[i]);
-#endif
/* Add column to tab separated string */
dynstr_append_mem(&result, row[i], lengths[i]);
}
@@ -1586,12 +2047,12 @@ void var_set_query_get_value(struct st_command *command, VAR *var)
{
/* Get the value */
MYSQL_ROW row;
- ulong rows= 0;
+ long rows= 0;
const char* value= "No such row";
while ((row= mysql_fetch_row(res)))
{
- if (++rows == (ulong) row_no)
+ if (++rows == row_no)
{
DBUG_PRINT("info", ("At row %ld, column %d is '%s'",
@@ -1715,7 +2176,7 @@ int open_file(const char *name)
if (!(cur_file->file = my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(0))))
{
cur_file--;
- die("Could not open file %s", buff);
+ die("Could not open file '%s'", buff);
}
cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
cur_file->lineno=1;
@@ -1953,7 +2414,7 @@ void do_exec(struct st_command *command)
if (command->abort_on_error)
{
- log_msg("exec of '%s failed, error: %d, status: %d, errno: %d",
+ log_msg("exec of '%s' failed, error: %d, status: %d, errno: %d",
ds_cmd.str, error, status, errno);
dynstr_free(&ds_cmd);
die("command \"%s\" failed", command->first_argument);
@@ -2196,8 +2657,8 @@ void do_copy_file(struct st_command *command)
command command handle
DESCRIPTION
- chmod <octal> <file>
- Change file permission of <file>
+ chmod_file <octal> <file_name>
+ Change file permission of <file_name>
*/
@@ -2207,8 +2668,8 @@ void do_chmod_file(struct st_command *command)
static DYNAMIC_STRING ds_mode;
static DYNAMIC_STRING ds_file;
const struct command_arg chmod_file_args[] = {
- { "mode", ARG_STRING, TRUE, &ds_mode, "Mode of file" },
- { "file", ARG_STRING, TRUE, &ds_file, "Filename of file to modify" }
+ { "mode", ARG_STRING, TRUE, &ds_mode, "Mode of file(octal) ex. 0660"},
+ { "filename", ARG_STRING, TRUE, &ds_file, "Filename of file to modify" }
};
DBUG_ENTER("do_chmod_file");
@@ -2303,8 +2764,22 @@ void read_until_delimiter(DYNAMIC_STRING *ds,
c= my_getc(cur_file->file);
if (c == '\n')
+ {
cur_file->lineno++;
+ /* Skip newline from the same line as the command */
+ if (start_lineno == (cur_file->lineno - 1))
+ continue;
+ }
+ else if (start_lineno == cur_file->lineno)
+ {
+ /*
+ No characters except \n are allowed on
+ the same line as the command
+ */
+ die("Trailing characters found after command");
+ }
+
if (feof(cur_file->file))
die("End of file encountered before '%s' delimiter was found",
ds_delimiter->str);
@@ -2342,6 +2817,12 @@ void do_write_file_command(struct st_command *command, my_bool append)
if (ds_delimiter.length == 0)
dynstr_set(&ds_delimiter, "EOF");
+ if (!append && access(ds_filename.str, F_OK) == 0)
+ {
+ /* The file should not be overwritten */
+ die("File already exist: '%s'", ds_filename.str);
+ }
+
init_dynamic_string(&ds_content, "", 1024, 1024);
read_until_delimiter(&ds_content, &ds_delimiter);
DBUG_PRINT("info", ("Writing to file: %s", ds_filename.str));
@@ -2374,7 +2855,7 @@ void do_write_file_command(struct st_command *command, my_bool append)
Write everything between the "write_file" command and 'delimiter'
to "file_name"
- NOTE! Overwrites existing file
+ NOTE! Will fail if <file_name> exists
Default <delimiter> is EOF
@@ -2431,9 +2912,6 @@ void do_append_file(struct st_command *command)
void do_cat_file(struct st_command *command)
{
- int fd;
- uint len;
- char buff[512];
static DYNAMIC_STRING ds_filename;
const struct command_arg cat_file_args[] = {
{ "filename", ARG_STRING, TRUE, &ds_filename, "File to read from" }
@@ -2448,37 +2926,13 @@ void do_cat_file(struct st_command *command)
DBUG_PRINT("info", ("Reading from, file: %s", ds_filename.str));
- if ((fd= my_open(ds_filename.str, O_RDONLY, MYF(0))) < 0)
- die("Failed to open file %s", ds_filename.str);
- while((len= my_read(fd, (uchar*)&buff,
- sizeof(buff), MYF(0))) > 0)
- {
- char *p= buff, *start= buff;
- while (p < buff+len)
- {
- /* Convert cr/lf to lf */
- if (*p == '\r' && *(p+1) && *(p+1)== '\n')
- {
- /* Add fake newline instead of cr and output the line */
- *p= '\n';
- p++; /* Step past the "fake" newline */
- dynstr_append_mem(&ds_res, start, p-start);
- p++; /* Step past the "fake" newline */
- start= p;
- }
- else
- p++;
- }
- /* Output any chars that migh be left */
- dynstr_append_mem(&ds_res, start, p-start);
- }
- my_close(fd, MYF(0));
+ cat_file(&ds_res, ds_filename.str);
+
dynstr_free(&ds_filename);
DBUG_VOID_RETURN;
}
-
/*
SYNOPSIS
do_diff_files
@@ -2494,9 +2948,6 @@ void do_cat_file(struct st_command *command)
void do_diff_files(struct st_command *command)
{
int error= 0;
- int fd, fd2;
- uint len, len2;
- char buff[512], buff2[512];
static DYNAMIC_STRING ds_filename;
static DYNAMIC_STRING ds_filename2;
const struct command_arg diff_file_args[] = {
@@ -2511,54 +2962,44 @@ void do_diff_files(struct st_command *command)
sizeof(diff_file_args)/sizeof(struct command_arg),
' ');
- if ((fd= my_open(ds_filename.str, O_RDONLY, MYF(0))) < 0)
- die("Failed to open first file %s", ds_filename.str);
- if ((fd2= my_open(ds_filename2.str, O_RDONLY, MYF(0))) < 0)
- {
- my_close(fd, MYF(0));
- die("Failed to open second file %s", ds_filename2.str);
- }
- while((len= my_read(fd, (uchar*)&buff,
- sizeof(buff), MYF(0))) > 0)
- {
- if ((len2= my_read(fd2, (uchar*)&buff2,
- sizeof(buff2), MYF(0))) != len)
- {
- /* File 2 was smaller */
- error= 1;
- break;
- }
- if ((memcmp(buff, buff2, len)))
- {
- /* Content of this part differed */
- error= 1;
- break;
- }
- }
- if (my_read(fd2, (uchar*)&buff2,
- sizeof(buff2), MYF(0)) > 0)
+ if ((error= compare_files(ds_filename.str, ds_filename2.str)))
{
- /* File 1 was smaller */
- error= 1;
+ /* Compare of the two files failed, append them to output
+ so the failure can be analyzed
+ */
+ show_diff(&ds_res, ds_filename.str, ds_filename2.str);
}
- my_close(fd, MYF(0));
- my_close(fd2, MYF(0));
dynstr_free(&ds_filename);
dynstr_free(&ds_filename2);
handle_command_error(command, error);
DBUG_VOID_RETURN;
}
- /*
- SYNOPSIS
- do_send_quit
- command called command
- DESCRIPTION
- Sends a simple quit command to the server for the named connection.
+struct st_connection * find_connection_by_name(const char *name)
+{
+ struct st_connection *con;
+ for (con= connections; con < next_con; con++)
+ {
+ if (!strcmp(con->name, name))
+ {
+ return con;
+ }
+ }
+ return 0; /* Connection not found */
+}
+
- */
+/*
+ SYNOPSIS
+ do_send_quit
+ command called command
+
+ DESCRIPTION
+ Sends a simple quit command to the server for the named connection.
+
+*/
void do_send_quit(struct st_command *command)
{
@@ -2569,7 +3010,7 @@ void do_send_quit(struct st_command *command)
DBUG_PRINT("enter",("name: '%s'",p));
if (!*p)
- die("Missing connection name in do_send_quit");
+ die("Missing connection name in send_quit");
name= p;
while (*p && !my_isspace(charset_info,*p))
p++;
@@ -2578,17 +3019,12 @@ void do_send_quit(struct st_command *command)
*p++= 0;
command->last_argument= p;
- /* Loop through connection pool for connection to close */
- for (con= connections; con < next_con; con++)
- {
- DBUG_PRINT("info", ("con->name: %s", con->name));
- if (!strcmp(con->name, name))
- {
- simple_command(&con->mysql,COM_QUIT,0,0,1);
- DBUG_VOID_RETURN;
- }
- }
- die("connection '%s' not found in connection pool", name);
+ if (!(con= find_connection_by_name(name)))
+ die("connection '%s' not found in connection pool", name);
+
+ simple_command(&con->mysql,COM_QUIT,0,0,1);
+
+ DBUG_VOID_RETURN;
}
@@ -2614,8 +3050,10 @@ void do_send_quit(struct st_command *command)
void do_perl(struct st_command *command)
{
int error;
- char buf[FN_REFLEN];
+ File fd;
FILE *res_file;
+ char buf[FN_REFLEN];
+ char temp_file_path[FN_REFLEN];
static DYNAMIC_STRING ds_script;
static DYNAMIC_STRING ds_delimiter;
const struct command_arg perl_args[] = {
@@ -2638,14 +3076,17 @@ void do_perl(struct st_command *command)
DBUG_PRINT("info", ("Executing perl: %s", ds_script.str));
- /* Format a name for a tmp .pl file that is unique for this process */
- my_snprintf(buf, sizeof(buf), "%s/tmp/tmp_%d.pl",
- getenv("MYSQLTEST_VARDIR"), getpid());
- str_to_file(buf, ds_script.str, ds_script.length);
+ /* Create temporary file name */
+ if ((fd= create_temp_file(temp_file_path, getenv("MYSQLTEST_VARDIR"),
+ "tmp", O_CREAT | O_SHARE | O_RDWR,
+ MYF(MY_WME))) < 0)
+ die("Failed to create temporary file for perl command");
+ my_close(fd, MYF(0));
+
+ str_to_file(temp_file_path, ds_script.str, ds_script.length);
- /* Format the perl <filename> command */
- my_snprintf(buf, sizeof(buf), "perl %s/tmp/tmp_%d.pl",
- getenv("MYSQLTEST_VARDIR"), getpid());
+ /* Format the "perl <filename>" command */
+ my_snprintf(buf, sizeof(buf), "perl %s", temp_file_path);
if (!(res_file= popen(buf, "r")) && command->abort_on_error)
die("popen(\"%s\", \"r\") failed", buf);
@@ -2663,6 +3104,10 @@ void do_perl(struct st_command *command)
}
}
error= pclose(res_file);
+
+ /* Remove the temporary file */
+ my_delete(temp_file_path, MYF(0));
+
handle_command_error(command, WEXITSTATUS(error));
dynstr_free(&ds_script);
dynstr_free(&ds_delimiter);
@@ -2777,7 +3222,11 @@ wait_for_position:
*/
mysql_free_result(res);
if (tries++ == 30)
+ {
+ show_query(mysql, "SHOW MASTER STATUS");
+ show_query(mysql, "SHOW SLAVE STATUS");
die("could not sync with master ('%s' returned NULL)", query_buf);
+ }
sleep(1); /* So at most we will wait 30 seconds and make 31 tries */
goto wait_for_position;
}
@@ -3416,20 +3865,6 @@ void set_reconnect(MYSQL* mysql, int val)
}
-struct st_connection * find_connection_by_name(const char *name)
-{
- struct st_connection *con;
- for (con= connections; con < next_con; con++)
- {
- if (!strcmp(con->name, name))
- {
- return con;
- }
- }
- return 0; /* Connection not found */
-}
-
-
int select_connection_name(const char *name)
{
DBUG_ENTER("select_connection_name");
@@ -3477,44 +3912,40 @@ void do_close_connection(struct st_command *command)
*p++= 0;
command->last_argument= p;
- /* Loop through connection pool for connection to close */
- for (con= connections; con < next_con; con++)
+ if (!(con= find_connection_by_name(name)))
+ die("connection '%s' not found in connection pool", name);
+
+ DBUG_PRINT("info", ("Closing connection %s", con->name));
+#ifndef EMBEDDED_LIBRARY
+ if (command->type == Q_DIRTY_CLOSE)
{
- DBUG_PRINT("info", ("con->name: %s", con->name));
- if (!strcmp(con->name, name))
+ if (con->mysql.net.vio)
{
- DBUG_PRINT("info", ("Closing connection %s", con->name));
-#ifndef EMBEDDED_LIBRARY
- if (command->type == Q_DIRTY_CLOSE)
- {
- if (con->mysql.net.vio)
- {
- vio_delete(con->mysql.net.vio);
- con->mysql.net.vio = 0;
- }
- }
+ vio_delete(con->mysql.net.vio);
+ con->mysql.net.vio = 0;
+ }
+ }
#endif
- if (next_con->stmt)
- mysql_stmt_close(next_con->stmt);
- next_con->stmt= 0;
+ if (con->stmt)
+ mysql_stmt_close(con->stmt);
+ con->stmt= 0;
- mysql_close(&con->mysql);
- if (con->util_mysql)
- mysql_close(con->util_mysql);
- con->util_mysql= 0;
- my_free(con->name, MYF(0));
+ mysql_close(&con->mysql);
- /*
- When the connection is closed set name to "-closed_connection-"
- to make it possible to reuse the connection name.
- */
- if (!(con->name = my_strdup("-closed_connection-", MYF(MY_WME))))
- die("Out of memory");
+ if (con->util_mysql)
+ mysql_close(con->util_mysql);
+ con->util_mysql= 0;
- DBUG_VOID_RETURN;
- }
- }
- die("connection '%s' not found in connection pool", name);
+ my_free(con->name, MYF(0));
+
+ /*
+ When the connection is closed set name to "-closed_connection-"
+ to make it possible to reuse the connection name.
+ */
+ if (!(con->name = my_strdup("-closed_connection-", MYF(MY_WME))))
+ die("Out of memory");
+
+ DBUG_VOID_RETURN;
}
@@ -3788,7 +4219,7 @@ void do_connect(struct st_command *command)
mysql_options(&con_slot->mysql, MYSQL_SET_CHARSET_NAME,
charset_info->csname);
if (opt_charsets_dir)
- mysql_options(&cur_con->mysql, MYSQL_SET_CHARSET_DIR,
+ mysql_options(&con_slot->mysql, MYSQL_SET_CHARSET_DIR,
opt_charsets_dir);
#ifdef HAVE_OPENSSL
@@ -4401,7 +4832,7 @@ void check_eol_junk(const char *eol)
terminated by new line '\n' regardless how many "delimiter" it contain.
*/
-#define MAX_QUERY (256*1024) /* 256K -- a test in sp-big is >128K */
+#define MAX_QUERY (256*1024*2) /* 256K -- a test in sp-big is >128K */
static char read_command_buf[MAX_QUERY];
int read_command(struct st_command** command_ptr)
@@ -4449,9 +4880,13 @@ int read_command(struct st_command** command_ptr)
if (!(command->query_buf= command->query= my_strdup(p, MYF(MY_WME))))
die("Out of memory");
- /* Calculate first word and first argument */
- for (p= command->query; *p && !my_isspace(charset_info, *p) ; p++) ;
+ /* Calculate first word length(the command), terminated by space or ( */
+ p= command->query;
+ while (*p && !my_isspace(charset_info, *p) && *p != '(')
+ p++;
command->first_word_len= (uint) (p - command->query);
+ DBUG_PRINT("info", ("first_word: %.*s",
+ command->first_word_len, command->query));
/* Skip spaces between command and first argument */
while (*p && my_isspace(charset_info, *p))
@@ -4541,6 +4976,10 @@ static struct my_option my_long_options[] =
{"sp-protocol", OPT_SP_PROTOCOL, "Use stored procedures for select",
(uchar**) &sp_protocol, (uchar**) &sp_protocol, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"tail-lines", OPT_TAIL_LINES,
+ "Number of lines of the resul to include in a failure report",
+ (uchar**) &opt_tail_lines, (uchar**) &opt_tail_lines, 0,
+ GET_INT, REQUIRED_ARG, 0, 0, 10000, 0, 0, 0},
#include "sslopt-longopts.h"
{"test-file", 'x', "Read test from/in this file (default stdin).",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -4607,7 +5046,7 @@ void read_embedded_server_arguments(const char *name)
embedded_server_args[0]= (char*) ""; /* Progname */
}
if (!(file=my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(MY_WME))))
- die("Failed to open file %s", buff);
+ die("Failed to open file '%s'", buff);
while (embedded_server_arg_count < MAX_EMBEDDED_SERVER_ARGS &&
(str=fgets(argument,sizeof(argument), file)))
@@ -4797,14 +5236,6 @@ void str_to_file(const char *fname, char *str, int size)
}
-void dump_result_to_reject_file(char *buf, int size)
-{
- char reject_file[FN_REFLEN];
- str_to_file(fn_format(reject_file, result_file_name, "", ".reject",
- MY_REPLACE_EXT),
- buf, size);
-}
-
void dump_result_to_log_file(char *buf, int size)
{
char log_file[FN_REFLEN];
@@ -4812,6 +5243,8 @@ void dump_result_to_log_file(char *buf, int size)
*opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT :
MY_REPLACE_EXT),
buf, size);
+ fprintf(stderr, "\nMore results from queries before failure can be found in %s\n",
+ log_file);
}
void dump_progress(void)
@@ -5793,7 +6226,7 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
init_dynamic_string(&ds_warnings, NULL, 0, 256);
- /* Scan for warning before sendign to server */
+ /* Scan for warning before sending to server */
scan_command_for_warnings(command);
/*
@@ -6225,7 +6658,6 @@ int main(int argc, char **argv)
connections_end= connections +
(sizeof(connections)/sizeof(struct st_connection)) - 1;
next_con= connections + 1;
- cur_con= connections;
#ifdef EMBEDDED_LIBRARY
/* set appropriate stack for the 'query' threads */
@@ -6301,6 +6733,7 @@ int main(int argc, char **argv)
if (cursor_protocol_enabled)
ps_protocol_enabled= 1;
+ cur_con= connections;
if (!( mysql_init(&cur_con->mysql)))
die("Failed in mysql_init()");
if (opt_compress)
@@ -6425,7 +6858,7 @@ int main(int argc, char **argv)
break;
case Q_LET: do_let(command); break;
case Q_EVAL_RESULT:
- eval_result = 1; break;
+ die("'eval_result' command is deprecated");
case Q_EVAL:
case Q_QUERY_VERTICAL:
case Q_QUERY_HORIZONTAL:
diff --git a/configure.in b/configure.in
index b89d73cbbae..772417cd9da 100644
--- a/configure.in
+++ b/configure.in
@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
#
# When changing major version number please also check switch statement
# in mysqlbinlog::check_master_version().
-AM_INIT_AUTOMAKE(mysql, 5.1.22-beta)
+AM_INIT_AUTOMAKE(mysql, 5.1.23-beta)
AM_CONFIG_HEADER([include/config.h:config.h.in])
PROTOCOL_VERSION=10
@@ -2623,6 +2623,14 @@ AC_SUBST(CC)
AC_SUBST(GXX)
# Set configuration options for make_binary_distribution
+case $SYSTEM_TYPE in
+ *netware*)
+ MAKE_BINARY_DISTRIBUTION_OPTIONS="$MAKE_BINARY_DISTRIBUTION_OPTIONS --no-strip"
+ ;;
+ *)
+ : # no change for other platforms yet
+ ;;
+esac
AC_SUBST(MAKE_BINARY_DISTRIBUTION_OPTIONS)
# Output results
diff --git a/extra/yassl/include/openssl/crypto.h b/extra/yassl/include/openssl/crypto.h
index 288990e1318..f53e5231027 100644
--- a/extra/yassl/include/openssl/crypto.h
+++ b/extra/yassl/include/openssl/crypto.h
@@ -9,6 +9,7 @@
const char* SSLeay_version(int type);
+#define SSLEAY_NUMBER_DEFINED
#define SSLEAY_VERSION 0x0900L
#define SSLEAY_VERSION_NUMBER SSLEAY_VERSION
diff --git a/extra/yassl/include/openssl/des_old.h b/extra/yassl/include/openssl/des_old.h
new file mode 100644
index 00000000000..40e8fbc02af
--- /dev/null
+++ b/extra/yassl/include/openssl/des_old.h
@@ -0,0 +1 @@
+/* des_old.h for openvn */
diff --git a/extra/yassl/include/openssl/evp.h b/extra/yassl/include/openssl/evp.h
new file mode 100644
index 00000000000..1d66b08df46
--- /dev/null
+++ b/extra/yassl/include/openssl/evp.h
@@ -0,0 +1,10 @@
+/* evp.h for openSSL */
+
+#ifndef SSLEAY_NUMBER_DEFINED
+#define SSLEAY_NUMBER_DEFINED
+
+/* for OpenVPN */
+#define SSLEAY_VERSION_NUMBER 0x0090700f
+
+
+#endif /* SSLEAY_NUMBER_DEFINED */
diff --git a/extra/yassl/include/openssl/hmac.h b/extra/yassl/include/openssl/hmac.h
new file mode 100644
index 00000000000..a2eae4c08c1
--- /dev/null
+++ b/extra/yassl/include/openssl/hmac.h
@@ -0,0 +1 @@
+/* hmac.h for openvpn */
diff --git a/extra/yassl/include/openssl/objects.h b/extra/yassl/include/openssl/objects.h
new file mode 100644
index 00000000000..99f2326e51b
--- /dev/null
+++ b/extra/yassl/include/openssl/objects.h
@@ -0,0 +1 @@
+/* objects.h for openvpn */
diff --git a/extra/yassl/include/openssl/prefix_ssl.h b/extra/yassl/include/openssl/prefix_ssl.h
index dc6e3ef81f0..3a3a8c26c9c 100644
--- a/extra/yassl/include/openssl/prefix_ssl.h
+++ b/extra/yassl/include/openssl/prefix_ssl.h
@@ -30,6 +30,7 @@
#define SSL_CTX_new yaSSL_CTX_new
#define SSL_new yaSSL_new
#define SSL_set_fd yaSSL_set_fd
+#define SSL_get_fd yaSSL_get_fd
#define SSL_connect yaSSL_connect
#define SSL_write yaSSL_write
#define SSL_read yaSSL_read
@@ -91,6 +92,8 @@
#define SSL_set_rfd yaSSL_set_rfd
#define SSL_set_wfd yaSSL_set_wfd
#define SSL_set_shutdown yaSSL_set_shutdown
+#define SSL_set_quiet_shutdown yaSSL_set_quiet_shutdown
+#define SSL_get_quiet_shutdown yaSSL_get_quiet_shutdown
#define SSL_want_read yaSSL_want_read
#define SSL_want_write yaSSL_want_write
#define SSL_pending yaSSL_pending
diff --git a/extra/yassl/include/openssl/sha.h b/extra/yassl/include/openssl/sha.h
new file mode 100644
index 00000000000..bb487c05c2e
--- /dev/null
+++ b/extra/yassl/include/openssl/sha.h
@@ -0,0 +1 @@
+/* sha.h for openvpn */
diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h
index efd0dec75b6..c0b87f804ad 100644
--- a/extra/yassl/include/openssl/ssl.h
+++ b/extra/yassl/include/openssl/ssl.h
@@ -34,7 +34,7 @@
#include "rsa.h"
-#define YASSL_VERSION "1.6.5"
+#define YASSL_VERSION "1.7.2"
#if defined(__cplusplus)
@@ -201,6 +201,7 @@ typedef int YASSL_SOCKET_T;
SSL_CTX* SSL_CTX_new(SSL_METHOD*);
SSL* SSL_new(SSL_CTX*);
int SSL_set_fd (SSL*, YASSL_SOCKET_T);
+YASSL_SOCKET_T SSL_get_fd(const SSL*);
int SSL_connect(SSL*);
int SSL_write(SSL*, const void*, int);
int SSL_read(SSL*, void*, int);
diff --git a/extra/yassl/include/yassl_int.hpp b/extra/yassl/include/yassl_int.hpp
index b7bd35f5fa2..b207f0bffbd 100644
--- a/extra/yassl/include/yassl_int.hpp
+++ b/extra/yassl/include/yassl_int.hpp
@@ -584,7 +584,7 @@ class SSL {
Socket socket_; // socket wrapper
Buffers buffers_; // buffered handshakes and data
Log log_; // logger
- bool quietShutdown_; // shutdown without handshakes
+ bool quietShutdown_;
// optimization variables
bool has_data_; // buffered data ready?
diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp
index 0cd0dfe9c7c..1d5a95820bb 100644
--- a/extra/yassl/src/handshake.cpp
+++ b/extra/yassl/src/handshake.cpp
@@ -719,6 +719,10 @@ int DoProcessReply(SSL& ssl)
// add new data
uint read = ssl.useSocket().receive(buffer.get_buffer() + buffSz, ready);
+ if (read == static_cast<uint>(-1)) {
+ ssl.SetError(receive_error);
+ return 0;
+ }
buffer.add_size(read);
uint offset = 0;
const MessageFactory& mf = ssl.getFactory().getMessage();
diff --git a/extra/yassl/src/socket_wrapper.cpp b/extra/yassl/src/socket_wrapper.cpp
index d53a109d70e..eee5d47377f 100644
--- a/extra/yassl/src/socket_wrapper.cpp
+++ b/extra/yassl/src/socket_wrapper.cpp
@@ -114,8 +114,6 @@ uint Socket::send(const byte* buf, unsigned int sz, int flags) const
const byte* pos = buf;
const byte* end = pos + sz;
- assert(socket_ != INVALID_SOCKET);
-
while (pos != end) {
int sent = ::send(socket_, reinterpret_cast<const char *>(pos),
static_cast<int>(end - pos), flags);
@@ -132,7 +130,6 @@ uint Socket::send(const byte* buf, unsigned int sz, int flags) const
uint Socket::receive(byte* buf, unsigned int sz, int flags)
{
- assert(socket_ != INVALID_SOCKET);
wouldBlock_ = false;
int recvd = ::recv(socket_, reinterpret_cast<char *>(buf), sz, flags);
@@ -163,7 +160,6 @@ bool Socket::wait()
void Socket::shutDown(int how)
{
- assert(socket_ != INVALID_SOCKET);
shutdown(socket_, how);
}
diff --git a/extra/yassl/src/ssl.cpp b/extra/yassl/src/ssl.cpp
index c3d580a93ab..f09a43be56e 100644
--- a/extra/yassl/src/ssl.cpp
+++ b/extra/yassl/src/ssl.cpp
@@ -239,6 +239,12 @@ int SSL_set_fd(SSL* ssl, YASSL_SOCKET_T fd)
}
+YASSL_SOCKET_T SSL_get_fd(const SSL* ssl)
+{
+ return ssl->getSocket().get_fd();
+}
+
+
int SSL_connect(SSL* ssl)
{
if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp
index f5ab2f200a5..0b6cb89e77e 100644
--- a/extra/yassl/src/yassl_int.cpp
+++ b/extra/yassl/src/yassl_int.cpp
@@ -773,6 +773,7 @@ void SSL::SetError(YasslError ye)
// TODO: add string here
}
+
// set the quiet shutdown mode (close_nofiy not sent or received on shutdown)
void SSL::SetQuietShutdown(bool mode)
{
diff --git a/extra/yassl/taocrypt/src/coding.cpp b/extra/yassl/taocrypt/src/coding.cpp
index 55fe31831e3..7a9d50aaac9 100644
--- a/extra/yassl/taocrypt/src/coding.cpp
+++ b/extra/yassl/taocrypt/src/coding.cpp
@@ -107,11 +107,12 @@ void HexDecoder::Decode()
// sanity checks
assert( b < sizeof(hexDecode)/sizeof(hexDecode[0]) );
assert( b2 < sizeof(hexDecode)/sizeof(hexDecode[0]) );
- assert( b != bad && b2 != bad );
b = hexDecode[b];
b2 = hexDecode[b2];
+ assert( b != bad && b2 != bad );
+
decoded_[i++] = (b << 4) | b2;
bytes -= 2;
}
@@ -184,7 +185,7 @@ void Base64Decoder::Decode()
{
word32 bytes = coded_.size();
word32 plainSz = bytes - ((bytes + (pemLineSz - 1)) / pemLineSz);
- plainSz = ((plainSz * 3) / 4) + 3;
+ plainSz = (plainSz * 3 + 3) / 4;
decoded_.New(plainSz);
word32 i = 0;
diff --git a/extra/yassl/taocrypt/src/crypto.cpp b/extra/yassl/taocrypt/src/crypto.cpp
index 82d3b853084..90d406bf0c2 100644
--- a/extra/yassl/taocrypt/src/crypto.cpp
+++ b/extra/yassl/taocrypt/src/crypto.cpp
@@ -26,6 +26,11 @@ extern "C" {
// locking handled internally by library
char CRYPTO_lock() { return 0;}
char CRYPTO_add_lock() { return 0;}
+
+
+ // for openvpn, test are the signatures they use
+ char EVP_CIPHER_CTX_init() { return 0; }
+ char CRYPTO_mem_ctrl() { return 0; }
} // extern "C"
diff --git a/include/Makefile.am b/include/Makefile.am
index fe54a7e35e0..8335da36e93 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -15,18 +15,17 @@
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA
-# FIXME 'abi_check' should be in BUILT_SOURCES, disabled for now
BUILT_SOURCES = $(HEADERS_GEN) link_sources
HEADERS_GEN = mysql_version.h my_config.h
HEADERS_ABI = mysql.h mysql_com.h mysql_time.h \
- my_list.h my_alloc.h typelib.h
+ my_list.h my_alloc.h typelib.h mysql/plugin.h
pkginclude_HEADERS = $(HEADERS_ABI) my_dbug.h m_string.h my_sys.h \
my_xml.h mysql_embed.h \
my_pthread.h my_no_pthread.h \
decimal.h errmsg.h my_global.h my_net.h \
my_getopt.h sslopt-longopts.h my_dir.h \
sslopt-vars.h sslopt-case.h sql_common.h keycache.h \
- m_ctype.h mysql/plugin.h my_attribute.h $(HEADERS_GEN)
+ m_ctype.h my_attribute.h $(HEADERS_GEN)
noinst_HEADERS = config-win.h config-netware.h \
heap.h my_bitmap.h my_uctype.h \
myisam.h myisampack.h myisammrg.h ft_global.h\
@@ -72,9 +71,8 @@ dist-hook:
abi_check: $(HEADERS_ABI) mysql_version.h mysql_h.ic
@set -ex; \
if [ @ICHECK@ != no ] ; then \
- @ICHECK@ --canonify --skip-from-re /usr/ -o $@.ic mysql.h; \
- @ICHECK@ --compare mysql_h.ic $@.ic; \
- $(RM) -f $@.ic; \
+ @ICHECK@ --canonify --skip-from-re /usr/ -o $@ $(HEADERS_ABI); \
+ @ICHECK@ --compare mysql_h.ic $@; \
fi; \
touch abi_check;
diff --git a/include/my_global.h b/include/my_global.h
index 8b6cdef8daa..12129523939 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -562,12 +562,6 @@ int __void__;
#define PURIFY_OR_LINT_INIT(var)
#endif
-/* Define some useful general macros */
-#if !defined(max)
-#define max(a, b) ((a) > (b) ? (a) : (b))
-#define min(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
#if !defined(HAVE_UINT)
#undef HAVE_UINT
#define HAVE_UINT
@@ -1508,4 +1502,10 @@ inline void operator delete[](void*, void*) { /* Do nothing */ }
/* Length of decimal number represented by INT64. */
#define MY_INT64_NUM_DECIMAL_DIGITS 21
+/* Define some useful general macros (should be done after all headers). */
+#if !defined(max)
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
#endif /* my_global_h */
diff --git a/include/my_pthread.h b/include/my_pthread.h
index 27b621de925..3041d43c773 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -29,25 +29,6 @@ extern "C" {
#define EXTERNC
#endif /* __cplusplus */
-/*
- BUG#24507: Race conditions inside current NPTL pthread_exit() implementation.
-
- If macro NPTL_PTHREAD_EXIT_HACK is defined then a hack described in the bug
- report will be implemented inside my_thread_global_init() in my_thr_init.c.
-
- This amounts to spawning a dummy thread which does nothing but executes
- pthread_exit(0).
-
- This bug is fixed in version 2.5 of glibc library.
-
- TODO: Remove this code when fixed versions of glibc6 are in common use.
- */
-
-#if defined(TARGET_OS_LINUX) && defined(HAVE_NPTL) && \
- defined(__GLIBC__) && ( __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 5 )
-#define NPTL_PTHREAD_EXIT_BUG 1
-#endif
-
#if defined(__WIN__)
typedef CRITICAL_SECTION pthread_mutex_t;
typedef HANDLE pthread_t;
@@ -179,7 +160,7 @@ void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
#define pthread_mutex_unlock(A) LeaveCriticalSection(A)
#define pthread_mutex_destroy(A) DeleteCriticalSection(A)
#define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B))
-#define pthread_kill(A,B) pthread_dummy(0)
+#define pthread_kill(A,B) pthread_dummy(ESRCH)
#define pthread_join(A,B) (WaitForSingleObject((A), INFINITE) != WAIT_OBJECT_0)
@@ -361,14 +342,14 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res);
#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D))
#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#define pthread_kill(A,B) pthread_dummy(0)
+#define pthread_kill(A,B) pthread_dummy(ESRCH)
#undef pthread_detach_this_thread
#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
#endif
#ifdef HAVE_DARWIN5_THREADS
#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#define pthread_kill(A,B) pthread_dummy(0)
+#define pthread_kill(A,B) pthread_dummy(ESRCH)
#define pthread_condattr_init(A) pthread_dummy(0)
#define pthread_condattr_destroy(A) pthread_dummy(0)
#undef pthread_detach_this_thread
@@ -388,7 +369,7 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res);
#ifndef pthread_sigmask
#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
#endif
-#define pthread_kill(A,B) pthread_dummy(0)
+#define pthread_kill(A,B) pthread_dummy(ESRCH)
#undef pthread_detach_this_thread
#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
#elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */
@@ -646,6 +627,11 @@ extern pthread_mutexattr_t my_errorcheck_mutexattr;
#define MY_MUTEX_INIT_ERRCHK NULL
#endif
+#ifndef ESRCH
+/* Define it to something */
+#define ESRCH 1
+#endif
+
typedef ulong my_thread_id;
extern my_bool my_thread_global_init(void);
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h
index 541fa7dfbe6..50ec051d111 100644
--- a/include/mysql/plugin.h
+++ b/include/mysql/plugin.h
@@ -750,7 +750,7 @@ void *thd_memdup(MYSQL_THD thd, const void* str, unsigned int size);
@param thd user thread connection handle
@param lex_str pointer to LEX_STRING object to be initialized
@param str initializer to be copied into lex_str
- @param length length of str, in bytes
+ @param size length of str, in bytes
@param allocate_lex_string flag: if TRUE, allocate new LEX_STRING object,
instead of using lex_str value
@return NULL on failure, or pointer to the LEX_STRING object
@@ -773,7 +773,7 @@ void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid);
Invalidate the query cache for a given table.
@param thd user thread connection handle
- @param key databasename\0tablename\0
+ @param key databasename\\0tablename\\0
@param key_length length of key in bytes, including the NUL bytes
@param using_trx flag: TRUE if using transactions, FALSE otherwise
*/
@@ -785,5 +785,28 @@ void mysql_query_cache_invalidate4(MYSQL_THD thd,
}
#endif
+#ifdef __cplusplus
+/**
+ Provide a handler data getter to simplify coding
+*/
+inline
+void *
+thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton)
+{
+ return *thd_ha_data(thd, hton);
+}
+
+/**
+ Provide a handler data setter to simplify coding
+*/
+inline
+void
+thd_set_ha_data(const MYSQL_THD thd, const struct handlerton *hton,
+ const void *ha_data)
+{
+ *thd_ha_data(thd, hton)= (void*) ha_data;
+}
+#endif
+
#endif
diff --git a/include/mysql_h.ic b/include/mysql_h.ic
index 7d16a886fd8..8b1c36fdaab 100644
--- a/include/mysql_h.ic
+++ b/include/mysql_h.ic
@@ -4,16 +4,27 @@ struct st_list;
struct st_mem_root;
struct st_mysql;
struct st_mysql_bind;
+struct st_mysql_daemon;
struct st_mysql_data;
struct st_mysql_field;
+struct st_mysql_ftparser;
+struct st_mysql_ftparser_boolean_info;
+struct st_mysql_ftparser_param;
+struct st_mysql_information_schema;
+struct st_mysql_lex_string;
struct st_mysql_manager;
struct st_mysql_methods;
struct st_mysql_options;
struct st_mysql_parameters;
+struct st_mysql_plugin;
struct st_mysql_res;
struct st_mysql_rows;
+struct st_mysql_show_var;
struct st_mysql_stmt;
+struct st_mysql_storage_engine;
struct st_mysql_time;
+struct st_mysql_value;
+struct st_mysql_xid;
struct st_net;
struct st_typelib;
struct st_udf_args;
@@ -22,7 +33,10 @@ struct st_used_mem;
enum Item_result;
enum enum_cursor_type;
enum enum_field_types;
+enum enum_ft_token_type;
+enum enum_ftparser_mode;
enum enum_mysql_set_option;
+enum enum_mysql_show_type;
enum enum_mysql_stmt_state;
enum enum_mysql_timestamp_type;
enum enum_server_command;
@@ -32,65 +46,79 @@ enum mysql_option;
enum mysql_protocol_type;
enum mysql_rpl_type;
enum mysql_status;
-# 134 "mysql.h"
+# 139 "mysql.h"
typedef struct st_mysql_rows MYSQL_ROWS;
-# 24 "my_list.h"
+# 23 "my_list.h"
typedef struct st_list LIST;
-# 35 "my_alloc.h"
+# 34 "my_alloc.h"
typedef struct st_mem_root MEM_ROOT;
-# 251 "mysql.h"
+# 258 "mysql.h"
typedef struct st_mysql MYSQL;
-# 653 "mysql.h"
+# 664 "mysql.h"
typedef struct st_mysql_bind MYSQL_BIND;
-# 93 "mysql.h"
+# 95 "mysql.h"
typedef struct st_mysql_field MYSQL_FIELD;
-# 117 "mysql.h"
+# 120 "mysql.h"
typedef unsigned int MYSQL_FIELD_OFFSET;
-# 340 "mysql.h"
+# 35 "mysql/plugin.h"
+typedef struct st_mysql_lex_string MYSQL_LEX_STRING;
+# 348 "mysql.h"
typedef struct st_mysql_manager MYSQL_MANAGER;
-# 354 "mysql.h"
+# 363 "mysql.h"
typedef struct st_mysql_parameters MYSQL_PARAMETERS;
-# 309 "mysql.h"
+# 316 "mysql.h"
typedef struct st_mysql_res MYSQL_RES;
-# 116 "mysql.h"
+# 119 "mysql.h"
typedef char * * MYSQL_ROW;
-# 140 "mysql.h"
+# 145 "mysql.h"
typedef MYSQL_ROWS * MYSQL_ROW_OFFSET;
-# 681 "mysql.h"
+# 693 "mysql.h"
typedef struct st_mysql_stmt MYSQL_STMT;
-# 236 "mysql.h"
+# 52 "mysql/plugin.h"
+typedef struct st_mysql_xid MYSQL_XID;
+# 243 "mysql.h"
typedef struct character_set MY_CHARSET_INFO;
-# 184 "mysql_com.h"
+# 187 "mysql_com.h"
typedef struct st_net NET;
-# 23 "typelib.h"
+# 22 "typelib.h"
typedef struct st_typelib TYPELIB;
-# 174 "mysql_com.h"
+# 177 "mysql_com.h"
typedef struct st_vio Vio;
-# 57 "mysql.h"
-typedef char * gptr;
-# 29 "my_list.h"
+# 28 "my_list.h"
typedef int (* list_walk_action)(void *, void *);
-# 48 "mysql.h"
+# 51 "mysql.h"
typedef char my_bool;
-# 63 "mysql.h"
+# 65 "mysql.h"
typedef int my_socket;
-# 125 "mysql.h"
+# 128 "mysql.h"
typedef unsigned long long int my_ulonglong;
-# 144 "mysql.h"
+# 214 "/usr/lib/gcc/i486-linux-gnu/4.1.2/include/stddef.h"
+typedef unsigned int size_t;
+# 149 "mysql.h"
typedef struct embedded_query_result EMBEDDED_QUERY_RESULT;
-# 145 "mysql.h"
+# 150 "mysql.h"
typedef struct st_mysql_data MYSQL_DATA;
-# 750 "mysql.h"
+# 495 "mysql/plugin.h"
+typedef struct st_mysql_ftparser_boolean_info MYSQL_FTPARSER_BOOLEAN_INFO;
+# 557 "mysql/plugin.h"
+typedef struct st_mysql_ftparser_param MYSQL_FTPARSER_PARAM;
+# 763 "mysql.h"
typedef struct st_mysql_methods MYSQL_METHODS;
-# 48 "mysql_time.h"
+# 47 "mysql_time.h"
typedef struct st_mysql_time MYSQL_TIME;
-# 375 "mysql_com.h"
+# 383 "mysql_com.h"
typedef struct st_udf_args UDF_ARGS;
-# 388 "mysql_com.h"
+# 397 "mysql_com.h"
typedef struct st_udf_init UDF_INIT;
-# 27 "my_alloc.h"
+# 26 "my_alloc.h"
typedef struct st_used_mem USED_MEM;
-# 236 "mysql.h"
+# 123 "mysql/plugin.h"
+typedef int (* mysql_show_var_func)(void *, struct st_mysql_show_var *, char *);
+# 170 "mysql/plugin.h"
+typedef int (* mysql_var_check_func)(void * thd, struct st_mysql_sys_var * var, void * save, struct st_mysql_value * value);
+# 188 "mysql/plugin.h"
+typedef void (* mysql_var_update_func)(void * thd, struct st_mysql_sys_var * var, void * var_ptr, void * save);
+# 243 "mysql.h"
struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(void *)))) character_set
{
unsigned int number;
@@ -102,7 +130,7 @@ struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(vo
unsigned int mbminlen;
unsigned int mbmaxlen;
};
-# 361 "mysql_com.h"
+# 369 "mysql_com.h"
struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof__(double)))) rand_struct
{
unsigned long int seed1;
@@ -110,30 +138,30 @@ struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof
unsigned long int max_value;
double max_value_dbl;
};
-# 24 "my_list.h"
+# 23 "my_list.h"
struct __attribute__((aligned(__alignof__(void *)))) st_list
{
struct st_list * prev;
struct st_list * next;
void * data;
};
-# 35 "my_alloc.h"
+# 34 "my_alloc.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned int)))) st_mem_root
{
USED_MEM * free;
USED_MEM * used;
USED_MEM * pre_alloc;
- unsigned int min_malloc;
- unsigned int block_size;
+ size_t min_malloc;
+ size_t block_size;
unsigned int block_num;
unsigned int first_block_usage;
void (* error_handler)(void);
};
-# 251 "mysql.h"
+# 258 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long long int)))) st_mysql
{
NET net;
- gptr connector_fd;
+ unsigned char * connector_fd;
char * host;
char * user;
char * passwd;
@@ -173,39 +201,47 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
void * thd;
my_bool * unbuffered_fetch_owner;
char * info_buffer;
+ void * extension;
};
-# 653 "mysql.h"
+# 664 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_mysql_bind
{
unsigned long int * length;
my_bool * is_null;
void * buffer;
my_bool * error;
- enum enum_field_types buffer_type;
- unsigned long int buffer_length;
unsigned char * row_ptr;
+ void (* store_param_func)(NET * net, struct st_mysql_bind * param);
+ void (* fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, unsigned char * * row);
+ void (* skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, unsigned char * * row);
+ unsigned long int buffer_length;
unsigned long int offset;
unsigned long int length_value;
unsigned int param_number;
unsigned int pack_length;
+ enum enum_field_types buffer_type;
my_bool error_value;
my_bool is_unsigned;
my_bool long_data_used;
my_bool is_null_value;
- void (* store_param_func)(NET * net, struct st_mysql_bind * param);
- void (* fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, unsigned char * * row);
- void (* skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, unsigned char * * row);
+ void * extension;
};
-# 145 "mysql.h"
-struct __attribute__((aligned(__alignof__(unsigned long long int)), aligned(__alignof__(void *)))) st_mysql_data
+# 628 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)))) st_mysql_daemon
+ {
+ int interface_version;
+ };
+# 150 "mysql.h"
+struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long long int)))) st_mysql_data
{
- my_ulonglong rows;
- unsigned int fields;
MYSQL_ROWS * data;
- MEM_ROOT alloc;
struct embedded_query_result * embedded_info;
+ MEM_ROOT alloc;
+ my_ulonglong rows;
+ unsigned int fields;
+ void * extension;
};
-# 93 "mysql.h"
+# 95 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_mysql_field
{
char * name;
@@ -228,30 +264,75 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
unsigned int decimals;
unsigned int charsetnr;
enum enum_field_types type;
+ void * extension;
+ };
+# 581 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)), aligned(__alignof__(void *)))) st_mysql_ftparser
+ {
+ int interface_version;
+ int (* parse)(MYSQL_FTPARSER_PARAM * param);
+ int (* init)(MYSQL_FTPARSER_PARAM * param);
+ int (* deinit)(MYSQL_FTPARSER_PARAM * param);
+ };
+# 495 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)), aligned(__alignof__(void *)))) st_mysql_ftparser_boolean_info
+ {
+ enum enum_ft_token_type type;
+ int yesno;
+ int weight_adjust;
+ char wasign;
+ char trunc;
+ char prev;
+ char * quot;
+ };
+# 557 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(int)))) st_mysql_ftparser_param
+ {
+ int (* mysql_parse)(struct st_mysql_ftparser_param *, char * doc, int);
+ int (* mysql_add_word)(struct st_mysql_ftparser_param *, char * word, int, MYSQL_FTPARSER_BOOLEAN_INFO * boolean_info);
+ void * ftparser_state;
+ void * mysql_ftparam;
+ struct charset_info_st * cs;
+ char * doc;
+ int length;
+ int flags;
+ enum enum_ftparser_mode mode;
+ };
+# 638 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)))) st_mysql_information_schema
+ {
+ int interface_version;
+ };
+# 29 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned int)))) st_mysql_lex_string
+ {
+ char * str;
+ unsigned int length;
};
-# 340 "mysql.h"
+# 348 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_mysql_manager
{
NET net;
char * host;
char * user;
char * passwd;
- unsigned int port;
- my_bool free_me;
- my_bool eof;
- int cmd_status;
- int last_errno;
char * net_buf;
char * net_buf_pos;
char * net_data_end;
+ unsigned int port;
+ int cmd_status;
+ int last_errno;
int net_buf_size;
+ my_bool free_me;
+ my_bool eof;
char last_error[256];
+ void * extension;
};
-# 750 "mysql.h"
+# 763 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)))) st_mysql_methods
{
my_bool (* read_query_result)(MYSQL * mysql);
- my_bool (* advanced_command)(MYSQL * mysql, enum enum_server_command, char const * header, unsigned long int, char const * arg, unsigned long int, my_bool, MYSQL_STMT * stmt);
+ my_bool (* advanced_command)(MYSQL * mysql, enum enum_server_command, unsigned char const * header, unsigned long int, unsigned char const * arg, unsigned long int, my_bool, MYSQL_STMT * stmt);
MYSQL_DATA * (* read_rows)(MYSQL * mysql, MYSQL_FIELD * mysql_fields, unsigned int);
MYSQL_RES * (* use_result)(MYSQL * mysql);
void (* fetch_lengths)(unsigned long int * to, MYSQL_ROW, unsigned int);
@@ -267,7 +348,7 @@ struct __attribute__((aligned(__alignof__(void *)))) st_mysql_methods
int (* read_change_user_result)(MYSQL * mysql, char * buff, char const * passwd);
int (* read_rows_from_cursor)(MYSQL_STMT * stmt);
};
-# 167 "mysql.h"
+# 173 "mysql.h"
struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof__(void *)))) st_mysql_options
{
unsigned int connect_timeout;
@@ -309,14 +390,32 @@ struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof
void (* local_infile_end)(void);
int (* local_infile_error)(void *, char *, unsigned int);
void * local_infile_userdata;
+ void * extension;
};
-# 354 "mysql.h"
+# 363 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)))) st_mysql_parameters
{
unsigned long int * p_max_allowed_packet;
unsigned long int * p_net_buffer_length;
+ void * extension;
+ };
+# 384 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)), aligned(__alignof__(void *)))) st_mysql_plugin
+ {
+ int type;
+ void * info;
+ char const * name;
+ char const * author;
+ char const * descr;
+ int license;
+ int (* init)(void);
+ int (* deinit)(void);
+ unsigned int version;
+ struct st_mysql_show_var * status_vars;
+ struct st_mysql_sys_var * * system_vars;
+ void * __reserved1;
};
-# 309 "mysql.h"
+# 316 "mysql.h"
struct __attribute__((aligned(__alignof__(unsigned long long int)), aligned(__alignof__(void *)))) st_mysql_res
{
my_ulonglong row_count;
@@ -325,23 +424,31 @@ struct __attribute__((aligned(__alignof__(unsigned long long int)), aligned(__al
MYSQL_ROWS * data_cursor;
unsigned long int * lengths;
MYSQL * handle;
+ struct st_mysql_methods const * methods;
+ MYSQL_ROW row;
+ MYSQL_ROW current_row;
MEM_ROOT field_alloc;
unsigned int field_count;
unsigned int current_field;
- MYSQL_ROW row;
- MYSQL_ROW current_row;
my_bool eof;
my_bool unbuffered_fetch_cancelled;
- struct st_mysql_methods const * methods;
+ void * extension;
};
-# 134 "mysql.h"
+# 139 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_mysql_rows
{
struct st_mysql_rows * next;
MYSQL_ROW data;
unsigned long int length;
};
-# 681 "mysql.h"
+# 116 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(void *)))) st_mysql_show_var
+ {
+ char const * name;
+ char * value;
+ enum enum_mysql_show_type type;
+ };
+# 693 "mysql.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long long int)))) st_mysql_stmt
{
MEM_ROOT mem_root;
@@ -352,9 +459,9 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
MYSQL_FIELD * fields;
MYSQL_DATA result;
MYSQL_ROWS * data_cursor;
+ int (* read_row_func)(struct st_mysql_stmt * stmt, unsigned char * * row);
my_ulonglong affected_rows;
my_ulonglong insert_id;
- int (* read_row_func)(struct st_mysql_stmt * stmt, unsigned char * * row);
unsigned long int stmt_id;
unsigned long int flags;
unsigned long int prefetch_rows;
@@ -370,8 +477,14 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
unsigned char bind_result_done;
my_bool unbuffered_fetch_cancelled;
my_bool update_max_length;
+ void * extension;
+ };
+# 616 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(int)))) st_mysql_storage_engine
+ {
+ int interface_version;
};
-# 48 "mysql_time.h"
+# 47 "mysql_time.h"
struct __attribute__((aligned(__alignof__(unsigned long int)))) st_mysql_time
{
unsigned int year;
@@ -384,7 +497,23 @@ struct __attribute__((aligned(__alignof__(unsigned long int)))) st_mysql_time
my_bool neg;
enum enum_mysql_timestamp_type time_type;
};
-# 184 "mysql_com.h"
+# 658 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(void *)))) st_mysql_value
+ {
+ int (* value_type)(struct st_mysql_value *);
+ char const * (* val_str)(struct st_mysql_value *, char * buffer, int * length);
+ int (* val_real)(struct st_mysql_value *, double * realbuf);
+ int (* val_int)(struct st_mysql_value *, long long int * intbuf);
+ };
+# 46 "mysql/plugin.h"
+struct __attribute__((aligned(__alignof__(long int)))) st_mysql_xid
+ {
+ long int formatID;
+ long int gtrid_length;
+ long int bqual_length;
+ char data[128];
+ };
+# 187 "mysql_com.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_net
{
Vio * vio;
@@ -393,6 +522,10 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
unsigned char * write_pos;
unsigned char * read_pos;
my_socket fd;
+ unsigned long int remain_in_buf;
+ unsigned long int length;
+ unsigned long int buf_length;
+ unsigned long int where_b;
unsigned long int max_packet;
unsigned long int max_packet_size;
unsigned int pkt_nr;
@@ -401,26 +534,23 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
unsigned int read_timeout;
unsigned int retry_count;
int fcntl;
- my_bool compress;
- unsigned long int remain_in_buf;
- unsigned long int length;
- unsigned long int buf_length;
- unsigned long int where_b;
unsigned int * return_status;
unsigned char reading_or_writing;
char save_char;
my_bool no_send_ok;
my_bool no_send_eof;
+ my_bool compress;
my_bool no_send_error;
- char last_error[512];
- char sqlstate[(5 + 1)];
+ unsigned char * query_cache_query;
unsigned int last_errno;
unsigned char error;
- gptr query_cache_query;
my_bool report_error;
my_bool return_errno;
+ char last_error[512];
+ char sqlstate[(5 + 1)];
+ void * extension;
};
-# 23 "typelib.h"
+# 22 "typelib.h"
struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(void *)))) st_typelib
{
unsigned int count;
@@ -428,7 +558,7 @@ struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(vo
char const * * type_names;
unsigned int * type_lengths;
};
-# 375 "mysql_com.h"
+# 383 "mysql_com.h"
struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(void *)))) st_udf_args
{
unsigned int arg_count;
@@ -438,8 +568,9 @@ struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(vo
char * maybe_null;
char * * attributes;
unsigned long int * attribute_lengths;
+ void * extension;
};
-# 388 "mysql_com.h"
+# 397 "mysql_com.h"
struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof__(void *)))) st_udf_init
{
my_bool maybe_null;
@@ -447,15 +578,16 @@ struct __attribute__((aligned(__alignof__(unsigned long int)), aligned(__alignof
unsigned long int max_length;
char * ptr;
my_bool const_item;
+ void * extension;
};
-# 27 "my_alloc.h"
+# 26 "my_alloc.h"
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned int)))) st_used_mem
{
struct st_used_mem * next;
unsigned int left;
unsigned int size;
};
-# 372 "mysql_com.h"
+# 380 "mysql_com.h"
enum Item_result
{
STRING_RESULT = 0,
@@ -464,7 +596,7 @@ enum Item_result
ROW_RESULT = 3,
DECIMAL_RESULT = 4,
};
-# 318 "mysql_com.h"
+# 321 "mysql_com.h"
enum enum_cursor_type
{
CURSOR_TYPE_NO_CURSOR = 0,
@@ -472,7 +604,7 @@ enum enum_cursor_type
CURSOR_TYPE_FOR_UPDATE = 2,
CURSOR_TYPE_SCROLLABLE = 4,
};
-# 231 "mysql_com.h"
+# 234 "mysql_com.h"
enum enum_field_types
{
MYSQL_TYPE_DECIMAL = 0,
@@ -503,13 +635,43 @@ enum enum_field_types
MYSQL_TYPE_STRING = 254,
MYSQL_TYPE_GEOMETRY = 255,
};
-# 328 "mysql_com.h"
+# 455 "mysql/plugin.h"
+enum enum_ft_token_type
+ {
+ FT_TOKEN_EOF = 0,
+ FT_TOKEN_WORD = 1,
+ FT_TOKEN_LEFT_PAREN = 2,
+ FT_TOKEN_RIGHT_PAREN = 3,
+ FT_TOKEN_STOPWORD = 4,
+ };
+# 407 "mysql/plugin.h"
+enum enum_ftparser_mode
+ {
+ MYSQL_FTPARSER_SIMPLE_MODE = 0,
+ MYSQL_FTPARSER_WITH_STOPWORDS = 1,
+ MYSQL_FTPARSER_FULL_BOOLEAN_INFO = 2,
+ };
+# 331 "mysql_com.h"
enum enum_mysql_set_option
{
MYSQL_OPTION_MULTI_STATEMENTS_ON = 0,
MYSQL_OPTION_MULTI_STATEMENTS_OFF = 1,
};
-# 583 "mysql.h"
+# 109 "mysql/plugin.h"
+enum enum_mysql_show_type
+ {
+ SHOW_UNDEF = 0,
+ SHOW_BOOL = 1,
+ SHOW_INT = 2,
+ SHOW_LONG = 3,
+ SHOW_LONGLONG = 4,
+ SHOW_CHAR = 5,
+ SHOW_CHAR_PTR = 6,
+ SHOW_ARRAY = 7,
+ SHOW_FUNC = 8,
+ SHOW_DOUBLE = 9,
+ };
+# 594 "mysql.h"
enum enum_mysql_stmt_state
{
MYSQL_STMT_INIT_DONE = 1,
@@ -517,7 +679,7 @@ enum enum_mysql_stmt_state
MYSQL_STMT_EXECUTE_DONE = 3,
MYSQL_STMT_FETCH_DONE = 4,
};
-# 29 "mysql_time.h"
+# 28 "mysql_time.h"
enum enum_mysql_timestamp_type
{
MYSQL_TIMESTAMP_NONE = -(2),
@@ -526,7 +688,7 @@ enum enum_mysql_timestamp_type
MYSQL_TIMESTAMP_DATETIME = 1,
MYSQL_TIMESTAMP_TIME = 2,
};
-# 52 "mysql_com.h"
+# 55 "mysql_com.h"
enum enum_server_command
{
COM_SLEEP = 0,
@@ -561,14 +723,14 @@ enum enum_server_command
COM_DAEMON = 29,
COM_END = 30,
};
-# 727 "mysql.h"
+# 740 "mysql.h"
enum enum_stmt_attr_type
{
STMT_ATTR_UPDATE_MAX_LENGTH = 0,
STMT_ATTR_CURSOR_TYPE = 1,
STMT_ATTR_PREFETCH_ROWS = 2,
};
-# 293 "mysql_com.h"
+# 296 "mysql_com.h"
enum mysql_enum_shutdown_level
{
SHUTDOWN_DEFAULT = 0,
@@ -577,10 +739,9 @@ enum mysql_enum_shutdown_level
SHUTDOWN_WAIT_UPDATES = (unsigned char)((1 << 3)),
SHUTDOWN_WAIT_ALL_BUFFERS = ((unsigned char)((1 << 3)) << 1),
SHUTDOWN_WAIT_CRITICAL_BUFFERS = (((unsigned char)((1 << 3)) << 1) + 1),
- KILL_QUERY = 254,
KILL_CONNECTION = 255,
};
-# 154 "mysql.h"
+# 160 "mysql.h"
enum mysql_option
{
MYSQL_OPT_CONNECT_TIMEOUT = 0,
@@ -606,7 +767,7 @@ enum mysql_option
MYSQL_OPT_RECONNECT = 20,
MYSQL_OPT_SSL_VERIFY_SERVER_CERT = 21,
};
-# 221 "mysql.h"
+# 228 "mysql.h"
enum mysql_protocol_type
{
MYSQL_PROTOCOL_DEFAULT = 0,
@@ -615,351 +776,393 @@ enum mysql_protocol_type
MYSQL_PROTOCOL_PIPE = 3,
MYSQL_PROTOCOL_MEMORY = 4,
};
-# 231 "mysql.h"
+# 238 "mysql.h"
enum mysql_rpl_type
{
MYSQL_RPL_MASTER = 0,
MYSQL_RPL_SLAVE = 1,
MYSQL_RPL_ADMIN = 2,
};
-# 216 "mysql.h"
+# 223 "mysql.h"
enum mysql_status
{
MYSQL_STATUS_READY = 0,
MYSQL_STATUS_GET_RESULT = 1,
MYSQL_STATUS_USE_RESULT = 2,
};
-# 427 "mysql_com.h"
+# 438 "mysql_com.h"
extern my_bool check_scramble(char const * reply, char const * message, unsigned char const * hash_stage2);
-# 420 "mysql_com.h"
+# 431 "mysql_com.h"
extern my_bool check_scramble_323(char const *, char const * message, unsigned long int * salt);
-# 33 "typelib.h"
+# 35 "typelib.h"
extern TYPELIB * copy_typelib(MEM_ROOT * root, TYPELIB * from);
-# 415 "mysql_com.h"
+# 426 "mysql_com.h"
extern void create_random_string(char * to, unsigned int, struct rand_struct * rand_st);
+# 32 "typelib.h"
+extern int find_type(char * x, TYPELIB const * typelib, unsigned int);
# 30 "typelib.h"
-extern int find_type(char * x, const TYPELIB * typelib, unsigned int);
-# 429 "mysql_com.h"
+extern int find_type_or_exit(char const * x, TYPELIB * typelib, char const * option);
+# 29 "typelib.h"
+extern my_ulonglong find_typeset(char * x, TYPELIB * typelib, int * error_position);
+# 440 "mysql_com.h"
extern void get_salt_from_password(unsigned char * res, char const * password);
-# 422 "mysql_com.h"
+# 433 "mysql_com.h"
extern void get_salt_from_password_323(unsigned long int * res, char const * password);
-# 435 "mysql_com.h"
+# 446 "mysql_com.h"
extern char * get_tty_password(char const * opt_message);
-# 32 "typelib.h"
+# 34 "typelib.h"
extern char const * get_type(TYPELIB * typelib, unsigned int);
-# 417 "mysql_com.h"
+# 428 "mysql_com.h"
extern void hash_password(unsigned long int * to, char const * password, unsigned int);
-# 31 "my_list.h"
+# 30 "my_list.h"
extern LIST * list_add(LIST * root, LIST * element);
-# 33 "my_list.h"
-extern LIST * list_cons(void * data, LIST * root);
# 32 "my_list.h"
+extern LIST * list_cons(void * data, LIST * root);
+# 31 "my_list.h"
extern LIST * list_delete(LIST * root, LIST * element);
-# 35 "my_list.h"
+# 34 "my_list.h"
extern void list_free(LIST * root, unsigned int);
-# 36 "my_list.h"
+# 35 "my_list.h"
extern unsigned int list_length(LIST *);
-# 34 "my_list.h"
+# 33 "my_list.h"
extern LIST * list_reverse(LIST * root);
-# 37 "my_list.h"
-extern int list_walk(LIST *, list_walk_action, gptr);
-# 430 "mysql_com.h"
+# 36 "my_list.h"
+extern int list_walk(LIST *, list_walk_action, unsigned char * argument);
+# 441 "mysql_com.h"
extern void make_password_from_salt(char * to, unsigned char const * hash_stage2);
-# 423 "mysql_com.h"
+# 434 "mysql_com.h"
extern void make_password_from_salt_323(char * to, unsigned long int const * salt);
-# 425 "mysql_com.h"
+# 436 "mysql_com.h"
extern void make_scrambled_password(char * to, char const * password);
-# 418 "mysql_com.h"
+# 429 "mysql_com.h"
extern void make_scrambled_password_323(char * to, char const * password);
-# 31 "typelib.h"
+# 33 "typelib.h"
extern void make_type(char * to, unsigned int, TYPELIB * typelib);
-# 358 "mysql_com.h"
+# 366 "mysql_com.h"
extern int my_connect(my_socket, struct sockaddr const * name, unsigned int, unsigned int);
-# 340 "mysql_com.h"
+# 343 "mysql_com.h"
extern my_bool my_net_init(NET * net, Vio * vio);
-# 341 "mysql_com.h"
+# 344 "mysql_com.h"
extern void my_net_local_init(NET * net);
-# 351 "mysql_com.h"
+# 354 "mysql_com.h"
extern unsigned long int my_net_read(NET * net);
-# 346 "mysql_com.h"
-extern my_bool my_net_write(NET * net, char const * packet, unsigned long int);
-# 414 "mysql_com.h"
+# 349 "mysql_com.h"
+extern my_bool my_net_write(NET * net, unsigned char const * packet, size_t);
+# 425 "mysql_com.h"
extern double my_rnd(struct rand_struct *);
-# 441 "mysql_com.h"
+# 452 "mysql_com.h"
extern void my_thread_end(void);
-# 440 "mysql_com.h"
+# 451 "mysql_com.h"
extern my_bool my_thread_init(void);
-# 559 "mysql.h"
+# 570 "mysql.h"
extern void myodbc_remove_escape(MYSQL * mysql, char * name);
-# 501 "mysql.h"
+# 512 "mysql.h"
extern int mysql_add_slave(MYSQL * mysql, char const * host, unsigned int, char const * user, char const * passwd);
-# 410 "mysql.h"
+# 421 "mysql.h"
extern my_ulonglong mysql_affected_rows(MYSQL * mysql);
-# 823 "mysql.h"
+# 836 "mysql.h"
extern my_bool mysql_autocommit(MYSQL * mysql, my_bool);
-# 426 "mysql.h"
+# 437 "mysql.h"
extern my_bool mysql_change_user(MYSQL * mysql, char const * user, char const * passwd, char const * db);
-# 418 "mysql.h"
+# 429 "mysql.h"
extern char const * mysql_character_set_name(MYSQL * mysql);
-# 826 "mysql.h"
+# 839 "mysql.h"
extern void mysql_close(MYSQL * sock);
-# 821 "mysql.h"
+# 834 "mysql.h"
extern my_bool mysql_commit(MYSQL * mysql);
-# 530 "mysql.h"
+# 541 "mysql.h"
extern void mysql_data_seek(MYSQL_RES * result, my_ulonglong);
-# 548 "mysql.h"
+# 559 "mysql.h"
extern void mysql_debug(char const * debug);
-# 487 "mysql.h"
+# 498 "mysql.h"
extern void mysql_disable_reads_from_master(MYSQL * mysql);
-# 481 "mysql.h"
+# 492 "mysql.h"
extern void mysql_disable_rpl_parse(MYSQL * mysql);
-# 509 "mysql.h"
+# 520 "mysql.h"
extern int mysql_dump_debug_info(MYSQL * mysql);
-# 561 "mysql.h"
+# 572 "mysql.h"
extern my_bool mysql_embedded(void);
-# 486 "mysql.h"
+# 497 "mysql.h"
extern void mysql_enable_reads_from_master(MYSQL * mysql);
-# 480 "mysql.h"
+# 491 "mysql.h"
extern void mysql_enable_rpl_parse(MYSQL * mysql);
-# 402 "mysql.h"
+# 413 "mysql.h"
extern my_bool mysql_eof(MYSQL_RES * res);
-# 412 "mysql.h"
+# 423 "mysql.h"
extern unsigned int mysql_errno(MYSQL * mysql);
-# 436 "mysql_com.h"
+# 447 "mysql_com.h"
extern char const * mysql_errno_to_sqlstate(unsigned int);
-# 413 "mysql.h"
+# 424 "mysql.h"
extern char const * mysql_error(MYSQL * mysql);
-# 541 "mysql.h"
+# 552 "mysql.h"
extern unsigned long int mysql_escape_string(char * to, char const * from, unsigned long int);
-# 538 "mysql.h"
+# 549 "mysql.h"
extern MYSQL_FIELD * mysql_fetch_field(MYSQL_RES * result);
-# 403 "mysql.h"
+# 414 "mysql.h"
extern MYSQL_FIELD * mysql_fetch_field_direct(MYSQL_RES * res, unsigned int);
-# 405 "mysql.h"
+# 416 "mysql.h"
extern MYSQL_FIELD * mysql_fetch_fields(MYSQL_RES * res);
-# 537 "mysql.h"
+# 548 "mysql.h"
extern unsigned long int * mysql_fetch_lengths(MYSQL_RES * result);
-# 536 "mysql.h"
+# 547 "mysql.h"
extern MYSQL_ROW mysql_fetch_row(MYSQL_RES * result);
-# 409 "mysql.h"
+# 420 "mysql.h"
extern unsigned int mysql_field_count(MYSQL * mysql);
-# 534 "mysql.h"
+# 545 "mysql.h"
extern MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES * result, MYSQL_FIELD_OFFSET);
-# 407 "mysql.h"
+# 418 "mysql.h"
extern MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RES * res);
-# 529 "mysql.h"
+# 540 "mysql.h"
extern void mysql_free_result(MYSQL_RES * result);
-# 454 "mysql.h"
+# 465 "mysql.h"
extern void mysql_get_character_set_info(MYSQL * mysql, MY_CHARSET_INFO * charset);
-# 519 "mysql.h"
+# 530 "mysql.h"
extern char const * mysql_get_client_info(void);
-# 520 "mysql.h"
+# 531 "mysql.h"
extern unsigned long int mysql_get_client_version(void);
-# 521 "mysql.h"
+# 532 "mysql.h"
extern char const * mysql_get_host_info(MYSQL * mysql);
-# 384 "mysql.h"
+# 395 "mysql.h"
extern MYSQL_PARAMETERS * mysql_get_parameters(void);
-# 523 "mysql.h"
+# 534 "mysql.h"
extern unsigned int mysql_get_proto_info(MYSQL * mysql);
-# 518 "mysql.h"
+# 529 "mysql.h"
extern char const * mysql_get_server_info(MYSQL * mysql);
-# 522 "mysql.h"
+# 533 "mysql.h"
extern unsigned long int mysql_get_server_version(MYSQL * mysql);
-# 425 "mysql.h"
+# 436 "mysql.h"
extern char const * mysql_get_ssl_cipher(MYSQL * mysql);
-# 543 "mysql.h"
+# 554 "mysql.h"
extern unsigned long int mysql_hex_string(char * to, char const * from, unsigned long int);
-# 416 "mysql.h"
+# 427 "mysql.h"
extern char const * mysql_info(MYSQL * mysql);
-# 421 "mysql.h"
+# 432 "mysql.h"
extern MYSQL * mysql_init(MYSQL * mysql);
-# 411 "mysql.h"
+# 422 "mysql.h"
extern my_ulonglong mysql_insert_id(MYSQL * mysql);
-# 512 "mysql.h"
+# 523 "mysql.h"
extern int mysql_kill(MYSQL * mysql, unsigned long int);
-# 524 "mysql.h"
+# 535 "mysql.h"
extern MYSQL_RES * mysql_list_dbs(MYSQL * mysql, char const * wild);
-# 539 "mysql.h"
+# 550 "mysql.h"
extern MYSQL_RES * mysql_list_fields(MYSQL * mysql, char const * table, char const * wild);
-# 526 "mysql.h"
+# 537 "mysql.h"
extern MYSQL_RES * mysql_list_processes(MYSQL * mysql);
-# 525 "mysql.h"
+# 536 "mysql.h"
extern MYSQL_RES * mysql_list_tables(MYSQL * mysql, char const * wild);
-# 568 "mysql.h"
+# 579 "mysql.h"
extern void mysql_manager_close(MYSQL_MANAGER * con);
-# 569 "mysql.h"
+# 580 "mysql.h"
extern int mysql_manager_command(MYSQL_MANAGER * con, char const * cmd, int);
-# 563 "mysql.h"
+# 574 "mysql.h"
extern MYSQL_MANAGER * mysql_manager_connect(MYSQL_MANAGER * con, char const * host, char const * user, char const * passwd, unsigned int);
-# 571 "mysql.h"
+# 582 "mysql.h"
extern int mysql_manager_fetch_line(MYSQL_MANAGER * con, char * res_buf, int);
-# 562 "mysql.h"
+# 573 "mysql.h"
extern MYSQL_MANAGER * mysql_manager_init(MYSQL_MANAGER * con);
-# 445 "mysql.h"
+# 456 "mysql.h"
extern my_bool mysql_master_query(MYSQL * mysql, char const * q, unsigned long int);
-# 447 "mysql.h"
+# 458 "mysql.h"
extern my_bool mysql_master_send_query(MYSQL * mysql, char const * q, unsigned long int);
-# 824 "mysql.h"
+# 837 "mysql.h"
extern my_bool mysql_more_results(MYSQL * mysql);
-# 825 "mysql.h"
+# 838 "mysql.h"
extern int mysql_next_result(MYSQL * mysql);
-# 401 "mysql.h"
+# 412 "mysql.h"
extern unsigned int mysql_num_fields(MYSQL_RES * res);
-# 400 "mysql.h"
+# 411 "mysql.h"
extern my_ulonglong mysql_num_rows(MYSQL_RES * res);
-# 549 "mysql.h"
+# 560 "mysql.h"
extern char * mysql_odbc_escape_string(MYSQL * mysql, char * to, unsigned long int, char const * from, unsigned long int, void * param, char * (* extend_buffer)(void *, char * to, unsigned long int * length));
+# 538 "mysql.h"
+extern int mysql_options(MYSQL * mysql, enum mysql_option, void const * arg);
# 527 "mysql.h"
-extern int mysql_options(MYSQL * mysql, enum mysql_option, char const * arg);
-# 516 "mysql.h"
extern int mysql_ping(MYSQL * mysql);
-# 75 "mysql.h"
+# 76 "mysql.h"
extern unsigned int mysql_port;
-# 436 "mysql.h"
+# 447 "mysql.h"
extern int mysql_query(MYSQL * mysql, char const * q);
-# 574 "mysql.h"
+# 780 "mysql/plugin.h"
+extern void mysql_query_cache_invalidate4(void * thd, char const * key, unsigned int, int);
+# 585 "mysql.h"
extern my_bool mysql_read_query_result(MYSQL * mysql);
-# 489 "mysql.h"
+# 500 "mysql.h"
extern my_bool mysql_reads_from_master_enabled(MYSQL * mysql);
-# 428 "mysql.h"
+# 439 "mysql.h"
extern MYSQL * mysql_real_connect(MYSQL * mysql, char const * host, char const * user, char const * passwd, char const * db, unsigned int, char const * unix_socket, unsigned long int);
-# 545 "mysql.h"
+# 556 "mysql.h"
extern unsigned long int mysql_real_escape_string(MYSQL * mysql, char * to, char const * from, unsigned long int);
-# 439 "mysql.h"
+# 450 "mysql.h"
extern int mysql_real_query(MYSQL * mysql, char const * q, unsigned long int);
-# 510 "mysql.h"
+# 521 "mysql.h"
extern int mysql_refresh(MYSQL * mysql, unsigned int);
-# 822 "mysql.h"
+# 835 "mysql.h"
extern my_bool mysql_rollback(MYSQL * mysql);
-# 532 "mysql.h"
+# 543 "mysql.h"
extern MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES * result, MYSQL_ROW_OFFSET);
-# 406 "mysql.h"
+# 417 "mysql.h"
extern MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES * res);
-# 483 "mysql.h"
-extern int mysql_rpl_parse_enabled(MYSQL * mysql);
# 494 "mysql.h"
+extern int mysql_rpl_parse_enabled(MYSQL * mysql);
+# 505 "mysql.h"
extern my_bool mysql_rpl_probe(MYSQL * mysql);
-# 491 "mysql.h"
+# 502 "mysql.h"
extern enum mysql_rpl_type mysql_rpl_query_type(char const * q, int);
-# 435 "mysql.h"
+# 446 "mysql.h"
extern int mysql_select_db(MYSQL * mysql, char const * db);
-# 437 "mysql.h"
+# 448 "mysql.h"
extern int mysql_send_query(MYSQL * mysql, char const * q, unsigned long int);
-# 371 "mysql.h"
+# 381 "mysql.h"
extern void mysql_server_end(void);
-# 370 "mysql.h"
+# 380 "mysql.h"
extern int mysql_server_init(int, char * * argv, char * * groups);
-# 419 "mysql.h"
+# 430 "mysql.h"
extern int mysql_set_character_set(MYSQL * mysql, char const * csname);
-# 472 "mysql.h"
+# 483 "mysql.h"
extern void mysql_set_local_infile_default(MYSQL * mysql);
-# 461 "mysql.h"
+# 472 "mysql.h"
extern void mysql_set_local_infile_handler(MYSQL * mysql, int (* local_infile_init)(void * *, char const *, void *), int (* local_infile_read)(void *, char *, unsigned int), void (* local_infile_end)(void), int (* local_infile_error)(void *, char *, unsigned int), void *);
-# 497 "mysql.h"
+# 508 "mysql.h"
extern int mysql_set_master(MYSQL * mysql, char const * host, unsigned int, char const * user, char const * passwd);
-# 513 "mysql.h"
+# 524 "mysql.h"
extern int mysql_set_server_option(MYSQL * mysql, enum enum_mysql_set_option);
-# 506 "mysql.h"
+# 517 "mysql.h"
extern int mysql_shutdown(MYSQL * mysql, enum mysql_enum_shutdown_level);
-# 450 "mysql.h"
+# 461 "mysql.h"
extern my_bool mysql_slave_query(MYSQL * mysql, char const * q, unsigned long int);
-# 452 "mysql.h"
+# 463 "mysql.h"
extern my_bool mysql_slave_send_query(MYSQL * mysql, char const * q, unsigned long int);
-# 414 "mysql.h"
+# 425 "mysql.h"
extern char const * mysql_sqlstate(MYSQL * mysql);
-# 422 "mysql.h"
+# 433 "mysql.h"
extern my_bool mysql_ssl_set(MYSQL * mysql, char const * key, char const * cert, char const * ca, char const * capath, char const * cipher);
-# 517 "mysql.h"
+# 528 "mysql.h"
extern char const * mysql_stat(MYSQL * mysql);
-# 817 "mysql.h"
+# 830 "mysql.h"
extern my_ulonglong mysql_stmt_affected_rows(MYSQL_STMT * stmt);
-# 795 "mysql.h"
+# 808 "mysql.h"
extern my_bool mysql_stmt_attr_get(MYSQL_STMT * stmt, enum enum_stmt_attr_type, void * attr);
-# 792 "mysql.h"
+# 805 "mysql.h"
extern my_bool mysql_stmt_attr_set(MYSQL_STMT * stmt, enum enum_stmt_attr_type, void const * attr);
-# 798 "mysql.h"
+# 811 "mysql.h"
extern my_bool mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd);
-# 799 "mysql.h"
+# 812 "mysql.h"
extern my_bool mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd);
-# 800 "mysql.h"
+# 813 "mysql.h"
extern my_bool mysql_stmt_close(MYSQL_STMT * stmt);
-# 815 "mysql.h"
+# 828 "mysql.h"
extern void mysql_stmt_data_seek(MYSQL_STMT * stmt, my_ulonglong);
-# 809 "mysql.h"
+# 822 "mysql.h"
extern unsigned int mysql_stmt_errno(MYSQL_STMT * stmt);
-# 810 "mysql.h"
+# 823 "mysql.h"
extern char const * mysql_stmt_error(MYSQL_STMT * stmt);
-# 785 "mysql.h"
+# 798 "mysql.h"
extern int mysql_stmt_execute(MYSQL_STMT * stmt);
-# 786 "mysql.h"
+# 799 "mysql.h"
extern int mysql_stmt_fetch(MYSQL_STMT * stmt);
-# 787 "mysql.h"
-extern int mysql_stmt_fetch_column(MYSQL_STMT * stmt, MYSQL_BIND * bind, unsigned int, unsigned long int);
-# 819 "mysql.h"
+# 800 "mysql.h"
+extern int mysql_stmt_fetch_column(MYSQL_STMT * stmt, MYSQL_BIND * bind_arg, unsigned int, unsigned long int);
+# 832 "mysql.h"
extern unsigned int mysql_stmt_field_count(MYSQL_STMT * stmt);
-# 802 "mysql.h"
+# 815 "mysql.h"
extern my_bool mysql_stmt_free_result(MYSQL_STMT * stmt);
-# 782 "mysql.h"
+# 795 "mysql.h"
extern MYSQL_STMT * mysql_stmt_init(MYSQL * mysql);
-# 818 "mysql.h"
+# 831 "mysql.h"
extern my_ulonglong mysql_stmt_insert_id(MYSQL_STMT * stmt);
-# 816 "mysql.h"
+# 829 "mysql.h"
extern my_ulonglong mysql_stmt_num_rows(MYSQL_STMT * stmt);
-# 791 "mysql.h"
+# 804 "mysql.h"
extern unsigned long int mysql_stmt_param_count(MYSQL_STMT * stmt);
-# 808 "mysql.h"
+# 821 "mysql.h"
extern MYSQL_RES * mysql_stmt_param_metadata(MYSQL_STMT * stmt);
-# 783 "mysql.h"
+# 796 "mysql.h"
extern int mysql_stmt_prepare(MYSQL_STMT * stmt, char const * query, unsigned long int);
-# 801 "mysql.h"
+# 814 "mysql.h"
extern my_bool mysql_stmt_reset(MYSQL_STMT * stmt);
-# 807 "mysql.h"
+# 820 "mysql.h"
extern MYSQL_RES * mysql_stmt_result_metadata(MYSQL_STMT * stmt);
-# 812 "mysql.h"
+# 825 "mysql.h"
extern MYSQL_ROW_OFFSET mysql_stmt_row_seek(MYSQL_STMT * stmt, MYSQL_ROW_OFFSET);
-# 814 "mysql.h"
+# 827 "mysql.h"
extern MYSQL_ROW_OFFSET mysql_stmt_row_tell(MYSQL_STMT * stmt);
-# 803 "mysql.h"
+# 816 "mysql.h"
extern my_bool mysql_stmt_send_long_data(MYSQL_STMT * stmt, unsigned int, char const * data, unsigned long int);
-# 811 "mysql.h"
+# 824 "mysql.h"
extern char const * mysql_stmt_sqlstate(MYSQL_STMT * stmt);
-# 790 "mysql.h"
+# 803 "mysql.h"
extern int mysql_stmt_store_result(MYSQL_STMT * stmt);
-# 441 "mysql.h"
+# 452 "mysql.h"
extern MYSQL_RES * mysql_store_result(MYSQL * mysql);
-# 393 "mysql.h"
+# 404 "mysql.h"
extern void mysql_thread_end(void);
-# 417 "mysql.h"
+# 428 "mysql.h"
extern unsigned long int mysql_thread_id(MYSQL * mysql);
-# 392 "mysql.h"
+# 403 "mysql.h"
extern my_bool mysql_thread_init(void);
-# 560 "mysql.h"
+# 571 "mysql.h"
extern unsigned int mysql_thread_safe(void);
-# 76 "mysql.h"
+# 699 "mysql/plugin.h"
+extern int mysql_tmpfile(char const * prefix);
+# 77 "mysql.h"
extern char * mysql_unix_port;
-# 442 "mysql.h"
+# 453 "mysql.h"
extern MYSQL_RES * mysql_use_result(MYSQL * mysql);
-# 415 "mysql.h"
+# 426 "mysql.h"
extern unsigned int mysql_warning_count(MYSQL * mysql);
-# 343 "mysql_com.h"
-extern void net_clear(NET * net);
-# 342 "mysql_com.h"
-extern void net_end(NET * net);
+# 346 "mysql_com.h"
+extern void net_clear(NET * net, my_bool);
# 345 "mysql_com.h"
+extern void net_end(NET * net);
+# 348 "mysql_com.h"
extern my_bool net_flush(NET * net);
-# 350 "mysql_com.h"
-extern int net_real_write(NET * net, char const * packet, unsigned long int);
-# 344 "mysql_com.h"
-extern my_bool net_realloc(NET * net, unsigned long int);
+# 353 "mysql_com.h"
+extern int net_real_write(NET * net, unsigned char const * packet, size_t);
# 347 "mysql_com.h"
-extern my_bool net_write_command(NET * net, unsigned char, char const * header, unsigned long int, char const * packet, unsigned long int);
-# 431 "mysql_com.h"
+extern my_bool net_realloc(NET * net, size_t);
+# 350 "mysql_com.h"
+extern my_bool net_write_command(NET * net, unsigned char, unsigned char const * header, size_t, unsigned char const * packet, size_t);
+# 442 "mysql_com.h"
extern char * octet2hex(char * to, char const * str, unsigned int);
-# 412 "mysql_com.h"
+# 423 "mysql_com.h"
extern void randominit(struct rand_struct *, unsigned long int, unsigned long int);
-# 426 "mysql_com.h"
+# 437 "mysql_com.h"
extern void scramble(char * to, char const * message, char const * password);
-# 419 "mysql_com.h"
+# 430 "mysql_com.h"
extern void scramble_323(char * to, char const * message, char const * password);
-# 35 "typelib.h"
+# 37 "typelib.h"
extern TYPELIB sql_protocol_typelib;
+# 729 "mysql/plugin.h"
+extern void * thd_alloc(void * thd, unsigned int);
+# 733 "mysql/plugin.h"
+extern void * thd_calloc(void * thd, unsigned int);
+# 770 "mysql/plugin.h"
+extern void thd_get_xid(void const * thd, MYSQL_XID * xid);
+# 680 "mysql/plugin.h"
+extern void * * thd_ha_data(void const * thd, struct handlerton const * hton);
+# 675 "mysql/plugin.h"
+extern int thd_in_lock_tables(void const * thd);
+# 685 "mysql/plugin.h"
+extern void thd_inc_row_count(void);
+# 715 "mysql/plugin.h"
+extern int thd_killed(void const * thd);
+# 760 "mysql/plugin.h"
+extern MYSQL_LEX_STRING * thd_make_lex_string(void * thd, MYSQL_LEX_STRING * lex_str, char const * str, unsigned int, int);
+# 745 "mysql/plugin.h"
+extern void * thd_memdup(void * thd, void const * str, unsigned int);
+# 679 "mysql/plugin.h"
+extern char const * thd_proc_info(void * thd, char const * info);
+# 682 "mysql/plugin.h"
+extern char * thd_security_context(void * thd, char * buffer, unsigned int, unsigned int);
+# 678 "mysql/plugin.h"
+extern int thd_sql_command(void const * thd);
+# 737 "mysql/plugin.h"
+extern char * thd_strdup(void * thd, char const * str);
+# 741 "mysql/plugin.h"
+extern char * thd_strmake(void * thd, char const * str, unsigned int);
+# 676 "mysql/plugin.h"
+extern int thd_tablespace_op(void const * thd);
+# 677 "mysql/plugin.h"
+extern long long int thd_test_options(void const * thd, long long int);
+# 681 "mysql/plugin.h"
+extern int thd_tx_isolation(void const * thd);
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index bf082ea8f31..c8e2d48873f 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -4676,9 +4676,17 @@ int cli_read_binary_rows(MYSQL_STMT *stmt)
MYSQL *mysql= stmt->mysql;
MYSQL_DATA *result= &stmt->result;
MYSQL_ROWS *cur, **prev_ptr= &result->data;
- NET *net = &mysql->net;
+ NET *net;
+
+ if (!mysql)
+ {
+ set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate);
+ return 1;
+ }
+
DBUG_ENTER("cli_read_binary_rows");
+ net = &mysql->net;
mysql= mysql->last_used_con;
while ((pkt_len= cli_safe_read(mysql)) != packet_error)
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 42d2752f6e1..9c26febe627 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -564,6 +564,17 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag)
init_alloc_root(&mysql->field_alloc, 8192, 0);
}
+/**
+ @brief Initialize a new THD for a connection in the embedded server
+
+ @param client_flag Client capabilities which this thread supports
+ @return pointer to the created THD object
+
+ @todo
+ This function copies code from several places in the server, including
+ create_new_thread(), and prepare_new_connection_state(). This should
+ be refactored to avoid code duplication.
+*/
void *create_embedded_thd(int client_flag)
{
THD * thd= new THD;
diff --git a/mysql-test/include/deadlock.inc b/mysql-test/include/deadlock.inc
index 41c68f39320..89c34abc871 100644
--- a/mysql-test/include/deadlock.inc
+++ b/mysql-test/include/deadlock.inc
@@ -144,4 +144,29 @@ disconnect con1;
disconnect con2;
drop table t1, t2;
-# End of 4.1 tests
+--echo End of 4.1 tests
+
+#
+# Bug#25164 create table `a` as select * from `A` hangs
+#
+
+set storage_engine=innodb;
+
+--disable_warnings
+drop table if exists a;
+drop table if exists A;
+--enable_warnings
+
+create table A (c int);
+insert into A (c) values (0);
+--error 0,ER_LOCK_DEADLOCK,ER_UPDATE_TABLE_USED
+create table a as select * from A;
+drop table A;
+
+--disable_warnings
+drop table if exists a;
+--enable_warnings
+
+set storage_engine=default;
+
+--echo End of 5.0 tests.
diff --git a/mysql-test/include/handler.inc b/mysql-test/include/handler.inc
index 67fff16c577..437dd6ced4d 100644
--- a/mysql-test/include/handler.inc
+++ b/mysql-test/include/handler.inc
@@ -465,3 +465,36 @@ select * from t1;
# Just to be sure and not confuse the next test case writer.
drop table if exists t1;
+#
+# Bug#25856 - HANDLER table OPEN in one connection lock DROP TABLE in another one
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+eval create table t1 (a int) ENGINE=$other_engine_type;
+--echo --> client 2
+connection con2;
+--error 1031
+handler t1 open;
+--echo --> client 1
+connection default;
+drop table t1;
+
+#
+# Bug#30632 HANDLER read failure causes hang
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int);
+handler t1 open as t1_alias;
+--error 1176
+handler t1_alias read a next;
+--error 1054
+handler t1_alias READ a next where inexistent > 0;
+--error 1176
+handler t1_alias read a next;
+--error 1054
+handler t1_alias READ a next where inexistent > 0;
+handler t1_alias close;
+drop table t1;
diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc
index 32a3e6b3ebd..5e6a535fce5 100644
--- a/mysql-test/include/mix1.inc
+++ b/mysql-test/include/mix1.inc
@@ -939,6 +939,36 @@ alter table t1 add index(a(1024));
show create table t1;
drop table t1;
+#
+# Bug #28570: handler::index_read() is called with different find_flag when
+# ORDER BY is used
+#
+
+CREATE TABLE t1 (
+ a INT,
+ b INT,
+ KEY (b)
+) ENGINE=InnoDB;
+
+INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
+
+START TRANSACTION;
+SELECT * FROM t1 WHERE b=20 FOR UPDATE;
+
+--connect (conn2, localhost, root,,test)
+
+# This statement gives a "failed: 1205: Lock wait timeout exceeded; try
+# restarting transaction" message when the bug is present.
+START TRANSACTION;
+SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
+ROLLBACK;
+
+--disconnect conn2
+--connection default
+
+ROLLBACK;
+DROP TABLE t1;
+
--echo End of 5.0 tests
# Fix for BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY
diff --git a/mysql-test/include/partition_layout.inc b/mysql-test/include/partition_layout.inc
index 95f6cac37d7..e8d2b0f9123 100644
--- a/mysql-test/include/partition_layout.inc
+++ b/mysql-test/include/partition_layout.inc
@@ -9,5 +9,6 @@ eval SHOW CREATE TABLE t1;
# listing of files belonging to the table t1
if ($ls)
{
+ --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec ls $MYSQLTEST_VARDIR/master-data/test/t1*
}
diff --git a/mysql-test/include/query_cache_sql_prepare.inc b/mysql-test/include/query_cache_sql_prepare.inc
index cf6d4c26959..1842d5412bb 100644
--- a/mysql-test/include/query_cache_sql_prepare.inc
+++ b/mysql-test/include/query_cache_sql_prepare.inc
@@ -275,5 +275,223 @@ drop table t1;
--echo ---- disconnect connection con1 ----
disconnect con1;
+#
+# Bug #25843 Changing default database between PREPARE and EXECUTE of statement
+# breaks binlog.
+#
+# There were actually two problems discovered by this bug:
+#
+# 1. Default (current) database is not fixed at the creation time.
+# That leads to wrong output of DATABASE() function.
+#
+# 2. Database attributes (@@collation_database) are not fixed at the creation
+# time. That leads to wrong resultset.
+#
+# Binlog breakage and Query Cache wrong output happened because of the first
+# problem.
+#
+
+--echo ########################################################################
+--echo #
+--echo # BUG#25843: Changing default database between PREPARE and EXECUTE of
+--echo # statement breaks binlog.
+--echo #
+--echo ########################################################################
+
+###############################################################################
+
+--echo
+--echo #
+--echo # Check that default database and its attributes are fixed at the
+--echo # creation time.
+--echo #
+
+# Prepare data structures.
+
+--echo
+--disable_warnings
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+--enable_warnings
+
+--echo
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+--echo
+CREATE TABLE mysqltest1.t1(msg VARCHAR(255));
+CREATE TABLE mysqltest2.t1(msg VARCHAR(255));
+
+# - Create a prepared statement with mysqltest1 as default database;
+
+--echo
+
+use mysqltest1;
+
+PREPARE stmt_a_1 FROM 'INSERT INTO t1 VALUES(DATABASE())';
+PREPARE stmt_a_2 FROM 'INSERT INTO t1 VALUES(@@collation_database)';
+
+# - Execute on mysqltest1.
+
+--echo
+
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+# - Execute on mysqltest2.
+
+--echo
+
+use mysqltest2;
+
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+# - Check the results;
+
+--echo
+SELECT * FROM mysqltest1.t1;
+
+--echo
+SELECT * FROM mysqltest2.t1;
+
+# - Drop prepared statements.
+
+--echo
+DROP PREPARE stmt_a_1;
+DROP PREPARE stmt_a_2;
+
+###############################################################################
+
+--echo
+--echo #
+--echo # The Query Cache test case.
+--echo #
+
+--echo
+DELETE FROM mysqltest1.t1;
+DELETE FROM mysqltest2.t1;
+
+--echo
+INSERT INTO mysqltest1.t1 VALUES('mysqltest1.t1');
+INSERT INTO mysqltest2.t1 VALUES('mysqltest2.t1');
+
+--echo
+use mysqltest1;
+PREPARE stmt_b_1 FROM 'SELECT * FROM t1';
+
+--echo
+use mysqltest2;
+PREPARE stmt_b_2 FROM 'SELECT * FROM t1';
+
+--echo
+EXECUTE stmt_b_1;
+
+--echo
+EXECUTE stmt_b_2;
+
+--echo
+use mysqltest1;
+
+--echo
+EXECUTE stmt_b_1;
+
+--echo
+EXECUTE stmt_b_2;
+
+--echo
+DROP PREPARE stmt_b_1;
+DROP PREPARE stmt_b_2;
+
+# Cleanup.
+
+--echo
+use test;
+
+--echo
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+
+###############################################################################
+
+--echo
+--echo #
+--echo # Check that prepared statements work properly when there is no current
+--echo # database.
+--echo #
+
+--echo
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+--echo
+use mysqltest1;
+
+--echo
+PREPARE stmt_c_1 FROM 'SELECT DATABASE(), @@collation_database';
+
+--echo
+use mysqltest2;
+
+--echo
+PREPARE stmt_c_2 FROM 'SELECT DATABASE(), @@collation_database';
+
+--echo
+DROP DATABASE mysqltest2;
+
+--echo
+SELECT DATABASE(), @@collation_database;
+
+# -- Here we have: current db: NULL; stmt db: mysqltest1;
+--echo
+EXECUTE stmt_c_1;
+
+--echo
+SELECT DATABASE(), @@collation_database;
+
+# -- Here we have: current db: NULL; stmt db: mysqltest2 (non-existent);
+--echo
+EXECUTE stmt_c_2;
+
+--echo
+SELECT DATABASE(), @@collation_database;
+
+# -- Create prepared statement, which has no current database.
+
+--echo
+PREPARE stmt_c_3 FROM 'SELECT DATABASE(), @@collation_database';
+
+# -- Here we have: current db: NULL; stmt db: NULL;
+--echo
+EXECUTE stmt_c_3;
+
+--echo
+use mysqltest1;
+
+# -- Here we have: current db: mysqltest1; stmt db: mysqltest2 (non-existent);
+--echo
+EXECUTE stmt_c_2;
+
+--echo
+SELECT DATABASE(), @@collation_database;
+
+# -- Here we have: current db: mysqltest1; stmt db: NULL;
+--echo
+EXECUTE stmt_c_3;
+
+--echo
+SELECT DATABASE(), @@collation_database;
+
+--echo
+DROP DATABASE mysqltest1;
+
+--echo
+use test;
+
+--echo
+--echo ########################################################################
+
+###############################################################################
+
set @@global.query_cache_size=@initial_query_cache_size;
flush status; # reset Qcache status variables for next tests
diff --git a/mysql-test/include/rpl_udf.inc b/mysql-test/include/rpl_udf.inc
index d9e19cda484..30f39d79d49 100644
--- a/mysql-test/include/rpl_udf.inc
+++ b/mysql-test/include/rpl_udf.inc
@@ -35,7 +35,7 @@ eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
--error ER_CANT_FIND_DL_ENTRY
eval CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "$UDF_EXAMPLE_LIB";
--replace_column 3 UDF_LIB
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
--disable_info
save_master_pos;
@@ -46,7 +46,7 @@ sync_with_master;
--echo "Running on the slave"
--enable_info
--replace_column 3 UDF_LIB
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
--disable_info
connection master;
@@ -81,7 +81,7 @@ connection master;
--enable_info
DROP FUNCTION myfunc_double;
DROP FUNCTION myfunc_int;
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
--disable_info
sync_slave_with_master;
@@ -89,7 +89,7 @@ sync_slave_with_master;
# Check to see if the UDFs were dropped on the slave
--echo "Running on the slave"
--enable_info
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
--disable_info
connection master;
@@ -108,7 +108,7 @@ DROP TABLE t1;
--enable_info
CREATE FUNCTION myfuncsql_int(i INT) RETURNS INTEGER DETERMINISTIC RETURN i;
CREATE FUNCTION myfuncsql_double(d DOUBLE) RETURNS INTEGER DETERMINISTIC RETURN d * 2.00;
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
--disable_info
sync_slave_with_master;
@@ -116,7 +116,7 @@ sync_slave_with_master;
# Check to see that UDF CREATE statements were replicated
--echo "Running on the slave"
--enable_info
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
--disable_info
connection master;
@@ -147,7 +147,7 @@ connection master;
--enable_info
ALTER FUNCTION myfuncsql_int COMMENT "This was altered.";
ALTER FUNCTION myfuncsql_double COMMENT "This was altered.";
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
--disable_info
sync_slave_with_master;
@@ -155,7 +155,7 @@ sync_slave_with_master;
# Check to see if data was replicated
--echo "Running on the slave"
--enable_info
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
# Check to see that the functions are available for execution on the slave
SELECT myfuncsql_int(25);
@@ -169,7 +169,7 @@ connection master;
--enable_info
DROP FUNCTION myfuncsql_double;
DROP FUNCTION myfuncsql_int;
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
--disable_info
sync_slave_with_master;
@@ -177,7 +177,7 @@ sync_slave_with_master;
# Check to see if the UDFs were dropped on the slave
--echo "Running on the slave"
--enable_info
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
--disable_info
connection master;
diff --git a/mysql-test/include/wait_condition.inc b/mysql-test/include/wait_condition.inc
index 2e6bd276aac..a41d8080c9b 100644
--- a/mysql-test/include/wait_condition.inc
+++ b/mysql-test/include/wait_condition.inc
@@ -17,6 +17,7 @@
# let $wait_condition=
# SELECT c = 3 FROM t;
# --source include/wait_condition.inc
+# --echo Executed the test condition $wait_condition_reps times
#
# EXAMPLE
# events_bugs.test, events_time_zone.test
@@ -33,9 +34,13 @@ if ($wait_timeout)
# calls, and default will be used instead.
let $wait_timeout= 0;
+# Keep track of how many times the wait condition is tested
+# This is used by some tests (e.g., main.status)
+let $wait_condition_reps= 0;
while ($wait_counter)
{
let $success= `$wait_condition`;
+ inc $wait_condition_reps;
if ($success)
{
let $wait_counter= 0;
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index 2becb7f9865..ba7fcb8ce10 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -53,7 +53,8 @@ sub collect_test_cases ($) {
my $found= 0;
foreach my $test ( @$cases )
{
- if ( mtr_match_extension($test->{'name'}, $tname) )
+ if ( $test->{'name'} eq $tname ||
+ mtr_match_extension($test->{'name'}, $tname) )
{
$found= 1;
}
@@ -192,8 +193,9 @@ sub collect_one_suite($$)
if ( @::opt_cases )
{
# Collect in specified order, no sort
- foreach my $tname ( @::opt_cases )
+ foreach my $tname2 ( @::opt_cases )
{
+ my $tname= $tname2; # Don't modify @::opt_cases !
my $elem= undef;
my $component_id= undef;
@@ -202,6 +204,9 @@ sub collect_one_suite($$)
$tname = basename($tname);
+ # Get rid of suite part
+ $tname =~ s/^$suite\.//;
+
# Check if the extenstion has been specified.
if ( mtr_match_extension($tname, "test") )
diff --git a/mysql-test/lib/mtr_misc.pl b/mysql-test/lib/mtr_misc.pl
index dc22f88bd7f..226f73a21de 100644
--- a/mysql-test/lib/mtr_misc.pl
+++ b/mysql-test/lib/mtr_misc.pl
@@ -19,9 +19,8 @@
# same name.
use strict;
+use File::Find;
-sub mtr_full_hostname ();
-sub mtr_short_hostname ();
sub mtr_native_path($);
sub mtr_init_args ($);
sub mtr_add_arg ($$@);
@@ -31,6 +30,7 @@ sub mtr_file_exists(@);
sub mtr_exe_exists(@);
sub mtr_exe_maybe_exists(@);
sub mtr_copy_dir($$);
+sub mtr_rmtree($);
sub mtr_same_opts($$);
sub mtr_cmp_opts($$);
@@ -40,30 +40,6 @@ sub mtr_cmp_opts($$);
#
##############################################################################
-# We want the fully qualified host name and hostname() may have returned
-# only the short name. So we use the resolver to find out.
-# Note that this might fail on some platforms
-
-sub mtr_full_hostname () {
-
- my $hostname= hostname();
- if ( $hostname !~ /\./ )
- {
- my $address= gethostbyname($hostname)
- or mtr_error("Couldn't resolve $hostname : $!");
- my $fullname= gethostbyaddr($address, AF_INET);
- $hostname= $fullname if $fullname;
- }
- return $hostname;
-}
-
-sub mtr_short_hostname () {
-
- my $hostname= hostname();
- $hostname =~ s/\..+$//;
- return $hostname;
-}
-
# Convert path to OS native format
sub mtr_native_path($)
{
@@ -226,6 +202,57 @@ sub mtr_copy_dir($$) {
}
+sub mtr_rmtree($) {
+ my ($dir)= @_;
+ mtr_verbose("mtr_rmtree: $dir");
+
+ # Try to use File::Path::rmtree. Recent versions
+ # handles removal of directories and files that don't
+ # have full permissions, while older versions
+ # may have a problem with that and we use our own version
+
+ eval { rmtree($dir); };
+ if ( $@ ) {
+ mtr_warning("rmtree($dir) failed, trying with File::Find...");
+
+ my $errors= 0;
+
+ # chmod
+ find( {
+ no_chdir => 1,
+ wanted => sub {
+ chmod(0777, $_)
+ or mtr_warning("couldn't chmod(0777, $_): $!") and $errors++;
+ }
+ },
+ $dir
+ );
+
+ # rm
+ finddepth( {
+ no_chdir => 1,
+ wanted => sub {
+ my $file= $_;
+ # Use special underscore (_) filehandle, caches stat info
+ if (!-l $file and -d _ ) {
+ rmdir($file) or
+ mtr_warning("couldn't rmdir($file): $!") and $errors++;
+ } else {
+ unlink($file)
+ or mtr_warning("couldn't unlink($file): $!") and $errors++;
+ }
+ }
+ },
+ $dir
+ );
+
+ mtr_error("Failed to remove '$dir'") if $errors;
+
+ mtr_report("OK, that worked!");
+ }
+}
+
+
sub mtr_same_opts ($$) {
my $l1= shift;
my $l2= shift;
diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl
index 69026d2c72f..8fd900330da 100644
--- a/mysql-test/lib/mtr_process.pl
+++ b/mysql-test/lib/mtr_process.pl
@@ -99,25 +99,26 @@ sub spawn_impl ($$$$$$$) {
if ( $::opt_script_debug )
{
- print STDERR "\n";
- print STDERR "#### ", "-" x 78, "\n";
- print STDERR "#### ", "STDIN $input\n" if $input;
- print STDERR "#### ", "STDOUT $output\n" if $output;
- print STDERR "#### ", "STDERR $error\n" if $error;
- print STDERR "#### ", "$mode : $path ", join(" ",@$arg_list_t), "\n";
- print STDERR "#### ", "spawn options:\n";
+ mtr_report("");
+ mtr_debug("-" x 73);
+ mtr_debug("STDIN $input") if $input;
+ mtr_debug("STDOUT $output") if $output;
+ mtr_debug("STDERR $error") if $error;
+ mtr_debug("$mode: $path ", join(" ",@$arg_list_t));
+ mtr_debug("spawn options:");
if ($spawn_opts)
{
foreach my $key (sort keys %{$spawn_opts})
{
- print STDERR "#### ", " - $key: $spawn_opts->{$key}\n";
+ mtr_debug(" - $key: $spawn_opts->{$key}");
}
}
else
{
- print STDERR "#### ", " none\n";
+ mtr_debug(" none");
}
- print STDERR "#### ", "-" x 78, "\n";
+ mtr_debug("-" x 73);
+ mtr_report("");
}
mtr_error("Can't spawn with empty \"path\"") unless defined $path;
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index 1edace54d30..dcd7d1ec842 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -19,6 +19,7 @@
# same name.
use strict;
+use warnings;
sub mtr_report_test_name($);
sub mtr_report_test_passed($);
@@ -26,7 +27,6 @@ sub mtr_report_test_failed($);
sub mtr_report_test_skipped($);
sub mtr_report_test_not_skipped_though_disabled($);
-sub mtr_show_failed_diff ($);
sub mtr_report_stats ($);
sub mtr_print_line ();
sub mtr_print_thick_line ();
@@ -38,6 +38,9 @@ sub mtr_child_error (@);
sub mtr_debug (@);
sub mtr_verbose (@);
+my $tot_real_time= 0;
+
+
##############################################################################
#
@@ -45,43 +48,10 @@ sub mtr_verbose (@);
#
##############################################################################
-# We can't use diff -u or diff -a as these are not portable
-
-sub mtr_show_failed_diff ($) {
- my $tinfo= shift;
-
- # The reject and log files have been dumped to
- # to filenames based on the result_file's name
- my $base_file= mtr_match_extension($tinfo->{'result_file'},
- "result"); # Trim extension
- my $reject_file= "$base_file.reject";
- my $result_file= "$base_file.result";
- my $log_file= "$base_file.log";
-
- my $diffopts= $::opt_udiff ? "-u" : "-c";
-
- if ( -f $reject_file )
- {
- print "Below are the diffs between actual and expected results:\n";
- print "-------------------------------------------------------\n";
- # FIXME check result code?!
- mtr_run("diff",[$diffopts,$result_file,$reject_file], "", "", "", "");
- print "-------------------------------------------------------\n";
- print "Please follow the instructions outlined at\n";
- print "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html\n";
- print "to find the reason to this problem and how to report this.\n\n";
- }
-
- if ( -f $log_file )
- {
- print "Result from queries before failure can be found in $log_file\n";
- # FIXME Maybe a tail -f -n 10 $log_file here
- }
-}
-
sub mtr_report_test_name ($) {
my $tinfo= shift;
+ _mtr_log("$tinfo->{name}");
printf "%-30s ", $tinfo->{'name'};
}
@@ -91,15 +61,15 @@ sub mtr_report_test_skipped ($) {
$tinfo->{'result'}= 'MTR_RES_SKIPPED';
if ( $tinfo->{'disable'} )
{
- print "[ disabled ] $tinfo->{'comment'}\n";
+ mtr_report("[ disabled ] $tinfo->{'comment'}");
}
elsif ( $tinfo->{'comment'} )
{
- print "[ skipped ] $tinfo->{'comment'}\n";
+ mtr_report("[ skipped ] $tinfo->{'comment'}");
}
else
{
- print "[ skipped ]\n";
+ mtr_report("[ skipped ]");
}
}
@@ -127,11 +97,11 @@ sub mtr_report_test_passed ($) {
if ( $::opt_timer and -f "$::opt_vardir/log/timer" )
{
$timer= mtr_fromfile("$::opt_vardir/log/timer");
- $::glob_tot_real_time += ($timer/1000);
+ $tot_real_time += ($timer/1000);
$timer= sprintf "%12s", $timer;
}
$tinfo->{'result'}= 'MTR_RES_PASSED';
- print "[ pass ] $timer\n";
+ mtr_report("[ pass ] $timer");
}
sub mtr_report_test_failed ($) {
@@ -140,27 +110,34 @@ sub mtr_report_test_failed ($) {
$tinfo->{'result'}= 'MTR_RES_FAILED';
if ( defined $tinfo->{'timeout'} )
{
- print "[ fail ] timeout\n";
+ mtr_report("[ fail ] timeout");
return;
}
else
{
- print "[ fail ]\n";
+ mtr_report("[ fail ]");
}
if ( $tinfo->{'comment'} )
{
- print "\nERROR: $tinfo->{'comment'}\n";
+ # The test failure has been detected by mysql-test-run.pl
+ # when starting the servers or due to other error, the reason for
+ # failing the test is saved in "comment"
+ mtr_report("\nERROR: $tinfo->{'comment'}");
}
elsif ( -f $::path_timefile )
{
- print "\nErrors are (from $::path_timefile) :\n";
+ # Test failure was detected by test tool and it's report
+ # about what failed has been saved to file. Display the report.
+ print "\n";
print mtr_fromfile($::path_timefile); # FIXME print_file() instead
- print "\n(the last lines may be the most important ones)\n";
+ print "\n";
}
else
{
- print "\nUnexpected termination, probably when starting mysqld\n";
+ # Neither this script or the test tool has recorded info
+ # about why the test has failed. Should be debugged.
+ mtr_report("\nUnexpected termination, probably when starting mysqld");;
}
}
@@ -228,8 +205,10 @@ sub mtr_report_stats ($) {
if ( $::opt_timer )
{
- print
- "Spent $::glob_tot_real_time seconds actually executing testcases\n"
+ use English;
+
+ mtr_report("Spent", sprintf("%.3f", $tot_real_time),"of",
+ time - $BASETIME, "seconds executing testcases");
}
# ----------------------------------------------------------------------
@@ -484,35 +463,66 @@ sub mtr_print_header () {
##############################################################################
#
-# Misc
+# Log and reporting functions
#
##############################################################################
+use IO::File;
+
+my $log_file_ref= undef;
+
+sub mtr_log_init ($) {
+ my ($filename)= @_;
+
+ mtr_error("Log is already open") if defined $log_file_ref;
+
+ $log_file_ref= IO::File->new($filename, "a") or
+ mtr_warning("Could not create logfile $filename: $!");
+}
+
+sub _mtr_log (@) {
+ print $log_file_ref join(" ", @_),"\n"
+ if defined $log_file_ref;
+}
+
sub mtr_report (@) {
+ # Print message to screen and log
+ _mtr_log(@_);
print join(" ", @_),"\n";
}
sub mtr_warning (@) {
+ # Print message to screen and log
+ _mtr_log("WARNING: ", @_);
print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n";
}
sub mtr_error (@) {
+ # Print message to screen and log
+ _mtr_log("ERROR: ", @_);
print STDERR "mysql-test-run: *** ERROR: ",join(" ", @_),"\n";
mtr_exit(1);
}
sub mtr_child_error (@) {
+ # Print message to screen and log
+ _mtr_log("ERROR(child): ", @_);
print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n";
exit(1);
}
sub mtr_debug (@) {
+ # Only print if --script-debug is used
if ( $::opt_script_debug )
{
+ _mtr_log("###: ", @_);
print STDERR "####: ",join(" ", @_),"\n";
}
}
+
sub mtr_verbose (@) {
+ # Always print to log, print to screen only when --verbose is used
+ _mtr_log("> ",@_);
if ( $::opt_verbose )
{
print STDERR "> ",join(" ", @_),"\n";
diff --git a/mysql-test/lib/mtr_timer.pl b/mysql-test/lib/mtr_timer.pl
index 86a9f58514f..326fbea74ec 100644
--- a/mysql-test/lib/mtr_timer.pl
+++ b/mysql-test/lib/mtr_timer.pl
@@ -18,7 +18,6 @@
# and is part of the translation of the Bourne shell script with the
# same name.
-use Socket;
use Errno;
use strict;
@@ -52,12 +51,10 @@ sub mtr_init_timers () {
sub mtr_timer_start($$$) {
my ($timers,$name,$duration)= @_;
- mtr_verbose("mtr_timer_start: $name, $duration");
-
if ( exists $timers->{'timers'}->{$name} )
{
# We have an old running timer, kill it
- mtr_verbose("There is an old timer running");
+ mtr_warning("There is an old timer running");
mtr_timer_stop($timers,$name);
}
@@ -75,22 +72,22 @@ sub mtr_timer_start($$$) {
}
else
{
- mtr_error("can't fork");
+ mtr_error("can't fork timer, error: $!");
}
}
if ( $tpid )
{
# Parent, record the information
- mtr_verbose("timer parent, record info($name, $tpid, $duration)");
+ mtr_verbose("Starting timer for '$name',",
+ "duration: $duration, pid: $tpid");
$timers->{'timers'}->{$name}->{'pid'}= $tpid;
$timers->{'timers'}->{$name}->{'duration'}= $duration;
$timers->{'pids'}->{$tpid}= $name;
}
else
{
- # Child, redirect output and exec
- # FIXME do we need to redirect streams?
+ # Child, install signal handlers and sleep for "duration"
# Don't do the ^C cleanup in the timeout child processes!
# There is actually a race here, if we get ^C after fork(), but before
@@ -98,13 +95,13 @@ sub mtr_timer_start($$$) {
$SIG{INT}= 'DEFAULT';
$SIG{TERM}= sub {
- mtr_verbose("timer woke up, exiting!");
+ mtr_verbose("timer $$ woke up, exiting!");
exit(0);
};
$0= "mtr_timer(timers,$name,$duration)";
sleep($duration);
- mtr_verbose("timer expired after $duration seconds");
+ mtr_verbose("timer $$ expired after $duration seconds");
exit(0);
}
}
@@ -114,12 +111,10 @@ sub mtr_timer_start($$$) {
sub mtr_timer_stop ($$) {
my ($timers,$name)= @_;
- mtr_verbose("mtr_timer_stop: $name");
-
if ( exists $timers->{'timers'}->{$name} )
{
my $tpid= $timers->{'timers'}->{$name}->{'pid'};
- mtr_verbose("Stopping timer with pid $tpid");
+ mtr_verbose("Stopping timer for '$name' with pid $tpid");
# FIXME as Cygwin reuses pids fast, maybe check that is
# the expected process somehow?!
@@ -134,11 +129,8 @@ sub mtr_timer_stop ($$) {
return 1;
}
- else
- {
- mtr_error("Asked to stop timer \"$name\" not started");
- return 0;
- }
+
+ mtr_error("Asked to stop timer '$name' not started");
}
@@ -158,7 +150,8 @@ sub mtr_timer_timeout ($$) {
return "" unless exists $timers->{'pids'}->{$pid};
- # We got a timeout, return the name ot the timer
+ # Got a timeout(the process with $pid is recorded as being a timer)
+ # return the name of the timer
return $timers->{'pids'}->{$pid};
}
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 1c74df53b48..f84da1ed132 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -61,7 +61,6 @@ use File::Copy;
use File::Temp qw /tempdir/;
use Cwd;
use Getopt::Long;
-use Sys::Hostname;
use IO::Socket;
use IO::Socket::INET;
use strict;
@@ -83,7 +82,6 @@ require "lib/mtr_io.pl";
require "lib/mtr_gcov.pl";
require "lib/mtr_gprof.pl";
require "lib/mtr_report.pl";
-require "lib/mtr_diff.pl";
require "lib/mtr_match.pl";
require "lib/mtr_misc.pl";
require "lib/mtr_stress.pl";
@@ -101,7 +99,6 @@ $Devel::Trace::TRACE= 1;
our $mysql_version_id;
our $glob_mysql_test_dir= undef;
our $glob_mysql_bench_dir= undef;
-our $glob_hostname= undef;
our $glob_scriptname= undef;
our $glob_timers= undef;
our $glob_use_embedded_server= 0;
@@ -234,7 +231,6 @@ my $opt_report_features;
our $opt_check_testcases;
our $opt_mark_progress;
-our $opt_skip;
our $opt_skip_rpl;
our $max_slave_num= 0;
our $max_master_num= 1;
@@ -277,13 +273,8 @@ our $opt_stress_test_duration= 0;
our $opt_stress_init_file= "";
our $opt_stress_test_file= "";
-our $opt_wait_for_master;
-our $opt_wait_for_slave;
-
our $opt_warnings;
-our $opt_udiff;
-
our $opt_skip_ndbcluster= 0;
our $opt_skip_ndbcluster_slave= 0;
our $opt_with_ndbcluster= 0;
@@ -307,7 +298,6 @@ our @data_dir_lst;
our $used_binlog_format;
our $used_default_engine;
our $debug_compiled_binaries;
-our $glob_tot_real_time= 0;
our %mysqld_variables;
@@ -619,7 +609,6 @@ sub command_line_setup () {
'start-dirty' => \$opt_start_dirty,
'start-and-exit' => \$opt_start_and_exit,
'timer!' => \$opt_timer,
- 'unified-diff|udiff' => \$opt_udiff,
'user=s' => \$opt_user,
'testcase-timeout=i' => \$opt_testcase_timeout,
'suite-timeout=i' => \$opt_suite_timeout,
@@ -655,8 +644,6 @@ sub command_line_setup () {
$source_dist= 1;
}
- $glob_hostname= mtr_short_hostname();
-
# Find the absolute path to the test directory
$glob_mysql_test_dir= cwd();
if ( $glob_cygwin_perl )
@@ -933,26 +920,6 @@ sub command_line_setup () {
mtr_error("Will not run in record mode without a specific test case");
}
- # --------------------------------------------------------------------------
- # Embedded server flag
- # --------------------------------------------------------------------------
- if ( $opt_embedded_server )
- {
- $glob_use_embedded_server= 1;
- push(@glob_test_mode, "embedded");
- $opt_skip_rpl= 1; # We never run replication with embedded
- $opt_skip_ndbcluster= 1; # Turn off use of NDB cluster
- $opt_skip_ssl= 1; # Turn off use of SSL
-
- # Turn off use of bin log
- push(@opt_extra_mysqld_opt, "--skip-log-bin");
-
- if ( $opt_extern )
- {
- mtr_error("Can't use --extern with --embedded-server");
- }
- }
-
# --------------------------------------------------------------------------
# ps protcol flag
@@ -2229,7 +2196,7 @@ sub remove_stale_vardir () {
{
# Remove the directory which the link points at
mtr_verbose("Removing " . readlink($opt_vardir));
- rmtree(readlink($opt_vardir));
+ mtr_rmtree(readlink($opt_vardir));
# Remove the "var" symlink
mtr_verbose("unlink($opt_vardir)");
@@ -2257,7 +2224,7 @@ sub remove_stale_vardir () {
foreach my $bin ( glob("$opt_vardir/*") )
{
mtr_verbose("Removing bin $bin");
- rmtree($bin);
+ mtr_rmtree($bin);
}
}
}
@@ -2265,7 +2232,7 @@ sub remove_stale_vardir () {
{
# Remove the entire "var" dir
mtr_verbose("Removing $opt_vardir/");
- rmtree("$opt_vardir/");
+ mtr_rmtree("$opt_vardir/");
}
if ( $opt_mem )
@@ -2274,7 +2241,7 @@ sub remove_stale_vardir () {
# remove the $opt_mem dir to assure the symlink
# won't point at an old directory
mtr_verbose("Removing $opt_mem");
- rmtree($opt_mem);
+ mtr_rmtree($opt_mem);
}
}
@@ -2287,11 +2254,11 @@ sub remove_stale_vardir () {
# Remove the var/ dir in mysql-test dir if any
# this could be an old symlink that shouldn't be there
mtr_verbose("Removing $default_vardir");
- rmtree($default_vardir);
+ mtr_rmtree($default_vardir);
# Remove the "var" dir
mtr_verbose("Removing $opt_vardir/");
- rmtree("$opt_vardir/");
+ mtr_rmtree("$opt_vardir/");
}
}
@@ -2944,13 +2911,16 @@ sub initialize_servers () {
}
}
check_running_as_root();
+
+ mtr_log_init("$opt_vardir/log/mysql-test-run.log");
+
}
sub mysql_install_db () {
install_db('master', $master->[0]->{'path_myddir'});
- if ($max_master_num)
+ if ($max_master_num > 1)
{
copy_install_db('master', $master->[1]->{'path_myddir'});
}
@@ -3112,11 +3082,15 @@ sub install_db ($$) {
mtr_appendfile_to_file("$path_sql_dir/fill_help_tables.sql",
$bootstrap_sql_file);
+ mtr_tofile($bootstrap_sql_file,
+ "DELETE FROM mysql.user where user= '';");
+
# Log bootstrap command
my $path_bootstrap_log= "$opt_vardir/log/bootstrap.log";
mtr_tofile($path_bootstrap_log,
"$exe_mysqld_bootstrap " . join(" ", @$args) . "\n");
+
if ( mtr_run($exe_mysqld_bootstrap, $args, $bootstrap_sql_file,
$path_bootstrap_log, $path_bootstrap_log,
"", { append_log_file => 1 }) != 0 )
@@ -3241,7 +3215,7 @@ sub restore_slave_databases ($) {
{
my $data_dir= $slave->[$idx]->{'path_myddir'};
my $name= basename($data_dir);
- rmtree($data_dir);
+ mtr_rmtree($data_dir);
mtr_copy_dir("$path_snapshot/$name", $data_dir);
}
}
@@ -3414,56 +3388,6 @@ sub find_testcase_skipped_reason($)
}
-sub analyze_testcase_failure_sync_with_master($)
-{
- my ($tinfo)= @_;
-
- my $args;
- mtr_init_args(\$args);
-
- mtr_add_arg($args, "--no-defaults");
- mtr_add_arg($args, "--silent");
- mtr_add_arg($args, "--skip-safemalloc");
- mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
- mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
-
- mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_sock'});
- mtr_add_arg($args, "--port=%d", $master->[0]->{'port'});
- mtr_add_arg($args, "--database=test");
- mtr_add_arg($args, "--user=%s", $opt_user);
- mtr_add_arg($args, "--password=");
-
- # Run the test file and append output to log file
- mtr_run_test($exe_mysqltest,$args,
- "include/analyze_failure_sync_with_master.test",
- "$path_timefile", "$path_timefile","",
- { append_log_file => 1 });
-
-}
-
-sub analyze_testcase_failure($)
-{
- my ($tinfo)= @_;
-
- # Open mysqltest.log
- my $F= IO::File->new($path_timefile)
- or return;
-
- while ( my $line= <$F> )
- {
- # Look for "mysqltest: At line nnn: <error>
- if ( $line =~ /mysqltest: At line [0-9]*: (.*)/ )
- {
- my $error= $1;
- # Look for "could not sync with master"
- if ( $error =~ /could not sync with master/ )
- {
- analyze_testcase_failure_sync_with_master($tinfo);
- }
- }
- }
-}
-
##############################################################################
#
# Run a single test case
@@ -3563,10 +3487,6 @@ sub run_testcase ($) {
}
elsif ( $res == 1 )
{
- if ( $opt_force )
- {
- analyze_testcase_failure($tinfo);
- }
# Test case failure reported by mysqltest
report_failure_and_restart($tinfo);
}
@@ -3600,7 +3520,7 @@ sub run_testcase ($) {
sub save_installed_db () {
mtr_report("Saving snapshot of installed databases");
- rmtree($path_snapshot);
+ mtr_rmtree($path_snapshot);
foreach my $data_dir (@data_dir_lst)
{
@@ -3647,7 +3567,7 @@ sub restore_installed_db ($) {
{
my $name= basename($data_dir);
save_files_before_restore($test_name, $data_dir);
- rmtree("$data_dir");
+ mtr_rmtree("$data_dir");
mtr_copy_dir("$path_snapshot/$name", "$data_dir");
}
@@ -3657,7 +3577,7 @@ sub restore_installed_db ($) {
{
foreach my $ndbd (@{$cluster->{'ndbds'}})
{
- rmtree("$ndbd->{'path_fs'}" );
+ mtr_rmtree("$ndbd->{'path_fs'}" );
}
}
}
@@ -3672,7 +3592,6 @@ sub report_failure_and_restart ($) {
my $tinfo= shift;
mtr_report_test_failed($tinfo);
- mtr_show_failed_diff($tinfo);
print "\n";
if ( $opt_force )
{
@@ -3681,13 +3600,13 @@ sub report_failure_and_restart ($) {
# Restore the snapshot of the installed test db
restore_installed_db($tinfo->{'name'});
- print "Resuming Tests\n\n";
+ mtr_report("Resuming Tests\n");
return;
}
my $test_mode= join(" ", @::glob_test_mode) || "default";
- print "Aborting: $tinfo->{'name'} failed in $test_mode mode. ";
- print "To continue, re-run with '--force'.\n";
+ mtr_report("Aborting: $tinfo->{'name'} failed in $test_mode mode. ");
+ mtr_report("To continue, re-run with '--force'.");
if ( ! $glob_debugger and
! $opt_extern and
! $glob_use_embedded_server )
@@ -4113,6 +4032,9 @@ sub mysqld_start ($$$) {
$wait_for_pid_file= 0;
}
+ # Remove the pidfile
+ unlink($mysqld->{'path_pid'});
+
if ( defined $exe )
{
$pid= mtr_spawn($exe, $args, "",
@@ -4146,11 +4068,11 @@ sub mysqld_start ($$$) {
sub stop_all_servers () {
- print "Stopping All Servers\n";
+ mtr_report("Stopping All Servers");
if ( ! $opt_skip_im )
{
- print "Shutting-down Instance Manager\n";
+ mtr_report("Shutting-down Instance Manager");
unless (mtr_im_stop($instance_manager, "stop_all_servers"))
{
mtr_error("Failed to stop Instance Manager.")
@@ -4860,6 +4782,9 @@ sub run_mysqltest ($) {
mtr_add_arg($args, "--test-file=%s", $tinfo->{'path'});
+ # Number of lines of resut to include in failure report
+ mtr_add_arg($args, "--tail-lines=20");
+
if ( defined $tinfo->{'result_file'} ) {
mtr_add_arg($args, "--result-file=%s", $tinfo->{'result_file'});
}
@@ -5273,7 +5198,6 @@ Misc options
fast Don't try to clean up from earlier runs
reorder Reorder tests to get fewer server restarts
help Get this help text
- unified-diff | udiff When presenting differences, use unified diff
testcase-timeout=MINUTES Max test case run time (default $default_testcase_timeout)
suite-timeout=MINUTES Max test suite run time (default $default_suite_timeout)
diff --git a/mysql-test/r/comments.result b/mysql-test/r/comments.result
index 98921c561d1..d8ac68e2468 100644
--- a/mysql-test/r/comments.result
+++ b/mysql-test/r/comments.result
@@ -36,3 +36,18 @@ select 1/*!999992*/;
select 1 + /*!00000 2 */ + 3 /*!99999 noise*/ + 4;
1 + 2 + 3 + 4
10
+drop table if exists table_28779;
+create table table_28779 (a int);
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' AND b = 'bar'' at line 1
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';*";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' AND b = 'bar';*' at line 1
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;*";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';*' at line 1
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*!98765' AND b = 'bar'' at line 1
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';*";
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*!98765' AND b = 'bar';*' at line 1
+drop table table_28779;
diff --git a/mysql-test/r/ctype_ascii.result b/mysql-test/r/ctype_ascii.result
new file mode 100644
index 00000000000..06362486073
--- /dev/null
+++ b/mysql-test/r/ctype_ascii.result
@@ -0,0 +1,177 @@
+set names ascii;
+select 'e'='`';
+'e'='`'
+0
+select 'y'='~';
+'y'='~'
+0
+create table t1 (a char(1) character set ascii);
+insert into t1 (a) values (' '), ('a'), ('b'), ('c'), ('d'), ('e'), ('f'), ('g'), ('h'), ('i'), ('j'), ('k'), ('l'), ('m'), ('n'), ('o'), ('p'), ('q'), ('r'), ('s'), ('t'), ('u'), ('v'), ('w'), ('x'), ('y'), ('z'), ('A'), ('B'), ('C'), ('D'), ('E'), ('F'), ('G'), ('H'), ('I'), ('J'), ('K'), ('L'), ('M'), ('N'), ('O'), ('P'), ('Q'), ('R'), ('S'), ('T'), ('U'), ('V'), ('W'), ('X'), ('Y'), ('Z'), ('!'), ('@'), ('#'), ('$'), ('%'), ('^'), ('&'), ('*'), ('('), (')'), ('_'), ('+'), ('`'), ('~'), ('1'), ('2'), ('3'), ('4'), ('5'), ('6'), ('7'), ('8'), ('9'), ('0'), ('['), (']'), ('\\'), ('|'), ('}'), ('{'), ('"'), (':'), (''''), (';'), ('/'), ('.'), (','), ('?'), ('>'), ('<'), ('\n'), ('\t'), ('\a'), ('\f'), ('\v');
+select t1a.a, t1b.a from t1 as t1a, t1 as t1b where t1a.a=t1b.a order by binary t1a.a, binary t1b.a;
+a a
+
+
+
+
+
+! !
+" "
+# #
+$ $
+% %
+& &
+' '
+( (
+) )
+* *
++ +
+, ,
+. .
+/ /
+0 0
+1 1
+2 2
+3 3
+4 4
+5 5
+6 6
+7 7
+8 8
+9 9
+: :
+; ;
+< <
+> >
+? ?
+@ @
+A A
+A a
+A a
+B B
+B b
+C C
+C c
+D D
+D d
+E E
+E e
+F F
+F f
+F f
+G G
+G g
+H H
+H h
+I I
+I i
+J J
+J j
+K K
+K k
+L L
+L l
+M M
+M m
+N N
+N n
+O O
+O o
+P P
+P p
+Q Q
+Q q
+R R
+R r
+S S
+S s
+T T
+T t
+U U
+U u
+V V
+V v
+V v
+W W
+W w
+X X
+X x
+Y Y
+Y y
+Z Z
+Z z
+[ [
+\ \
+] ]
+^ ^
+_ _
+` `
+a A
+a A
+a a
+a a
+a a
+a a
+b B
+b b
+c C
+c c
+d D
+d d
+e E
+e e
+f F
+f F
+f f
+f f
+f f
+f f
+g G
+g g
+h H
+h h
+i I
+i i
+j J
+j j
+k K
+k k
+l L
+l l
+m M
+m m
+n N
+n n
+o O
+o o
+p P
+p p
+q Q
+q q
+r R
+r r
+s S
+s s
+t T
+t t
+u U
+u u
+v V
+v V
+v v
+v v
+v v
+v v
+w W
+w w
+x X
+x x
+y Y
+y y
+z Z
+z z
+{ {
+| |
+} }
+~ ~
+drop table t1;
+End of 5.0 tests.
diff --git a/mysql-test/r/date_formats.result b/mysql-test/r/date_formats.result
index 11717679b42..c1c8b7b060e 100644
--- a/mysql-test/r/date_formats.result
+++ b/mysql-test/r/date_formats.result
@@ -80,7 +80,7 @@ select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T');
STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T')
NULL
Warnings:
-Error 1411 Incorrect time value: '22.30.61' for function str_to_time
+Error 1411 Incorrect time value: '22.30.61' for function str_to_date
create table t1 (date char(30), format char(30) not null);
insert into t1 values
('2003-01-02 10:11:12', '%Y-%m-%d %H:%i:%S'),
@@ -352,21 +352,21 @@ Tuesday 52 2001 %W %u %x NULL
7 53 1998 %w %u %Y NULL
NULL %m.%d.%Y NULL
Warnings:
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_time
-Error 1411 Incorrect datetime value: '10:20:10AM' for function str_to_time
-Error 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_time
-Error 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_time
-Error 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_time
-Error 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: '7 53 1998' for function str_to_time
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date
+Error 1411 Incorrect datetime value: '10:20:10AM' for function str_to_date
+Error 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_date
+Error 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_date
+Error 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_date
+Error 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: '7 53 1998' for function str_to_date
select date,format,concat(str_to_date(date, format),'') as con from t1;
date format con
2003-01-02 10:11:12 PM %Y-%m-%d %H:%i:%S %p NULL
@@ -386,21 +386,21 @@ Tuesday 52 2001 %W %u %x NULL
7 53 1998 %w %u %Y NULL
NULL %m.%d.%Y NULL
Warnings:
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_time
-Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_time
-Error 1411 Incorrect datetime value: '10:20:10AM' for function str_to_time
-Error 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_time
-Error 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_time
-Error 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_time
-Error 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_time
-Error 1411 Incorrect datetime value: '7 53 1998' for function str_to_time
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_date
+Error 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date
+Error 1411 Incorrect datetime value: '10:20:10AM' for function str_to_date
+Error 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_date
+Error 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_date
+Error 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_date
+Error 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date
+Error 1411 Incorrect datetime value: '7 53 1998' for function str_to_date
truncate table t1;
insert into t1 values
('10:20:10AM', '%h:%i:%s'),
@@ -440,7 +440,7 @@ select str_to_date('15-01-2001 12:59:59', GET_FORMAT(DATE,'USA'));
str_to_date('15-01-2001 12:59:59', GET_FORMAT(DATE,'USA'))
NULL
Warnings:
-Error 1411 Incorrect datetime value: '15-01-2001 12:59:59' for function str_to_time
+Error 1411 Incorrect datetime value: '15-01-2001 12:59:59' for function str_to_date
explain extended select makedate(1997,1), addtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002"),subtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002"),timediff("01.01.97 11:59:59.000001 PM","31.12.95 11:59:59.000002 PM"),cast(str_to_date("15-01-2001 12:59:59", "%d-%m-%Y %H:%i:%S") as TIME), maketime(23,11,12),microsecond("1997-12-31 23:59:59.000001");
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
diff --git a/mysql-test/r/deadlock_innodb.result b/mysql-test/r/deadlock_innodb.result
index a0686d1c844..7a4874d6aab 100644
--- a/mysql-test/r/deadlock_innodb.result
+++ b/mysql-test/r/deadlock_innodb.result
@@ -112,3 +112,14 @@ id x
commit;
# Switch to connection default + disconnect con1 and con2
drop table t1, t2;
+End of 4.1 tests
+set storage_engine=innodb;
+drop table if exists a;
+drop table if exists A;
+create table A (c int);
+insert into A (c) values (0);
+create table a as select * from A;
+drop table A;
+drop table if exists a;
+set storage_engine=default;
+End of 5.0 tests.
diff --git a/mysql-test/r/events.result b/mysql-test/r/events.result
index 579f5907882..d1ee6d1c5a1 100644
--- a/mysql-test/r/events.result
+++ b/mysql-test/r/events.result
@@ -454,8 +454,11 @@ create event закачка on schedule every 10 hour do select get_lock("test_l
select definer, name, db from mysql.event;
definer name db
root@localhost закачка events_test
-"Should be only 1 process"
-select /*1*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+"Should be only 0 process"
+select /*1*/ user, host, db, command, state, info
+from information_schema.processlist
+where (user='event_scheduler')
+order by info;
user host db command state info
select release_lock("test_lock1");
release_lock("test_lock1")
@@ -472,14 +475,15 @@ get_lock("test_lock2", 20)
1
"Create an event which tries to acquire a mutex. The event locks on the mutex"
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
-"Let some time pass to the event starts"
"Should have only 2 processes: the scheduler and the locked event"
-select /*2*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+select /*2*/ user, host, db, command, state, info
+from information_schema.processlist
+where (info like "select get_lock%" OR user='event_scheduler')
+order by info;
user host db command state info
event_scheduler localhost NULL Daemon Waiting for next activation NULL
root localhost events_test Connect User lock select get_lock("test_lock2", 20)
"Release the mutex, the event worker should finish."
-"Release the mutex, the event worker should finish."
select release_lock("test_lock2");
release_lock("test_lock2")
1
@@ -489,16 +493,25 @@ select get_lock("test_lock2_1", 20);
get_lock("test_lock2_1", 20)
1
create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
-"Should have only 3 processes: the scheduler, our conn and the locked event"
-select /*3*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+"Should have only 2 processes: the scheduler and the locked event"
+select /*3*/ user, host, db, command, state, info
+from information_schema.processlist
+where (info like "select get_lock%" OR user='event_scheduler')
+order by info;
user host db command state info
event_scheduler localhost NULL Daemon Waiting for next activation NULL
root localhost events_test Connect User lock select get_lock("test_lock2_1", 20)
set global event_scheduler=off;
"Should have only our process now:"
-select /*4*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+select /*4*/ user, host, db, command, state, info
+from information_schema.processlist
+where (info like "select get_lock%" OR user='event_scheduler')
+order by info;
user host db command state info
root localhost events_test Connect User lock select get_lock("test_lock2_1", 20)
+select release_lock("test_lock2_1");
+release_lock("test_lock2_1")
+1
drop event закачка21;
create table t_16 (s1 int);
create trigger t_16_bi before insert on t_16 for each row create event e_16 on schedule every 1 second do set @a=5;
diff --git a/mysql-test/r/events_logs_tests.result b/mysql-test/r/events_logs_tests.result
index fb658b4a83b..b7faf56f466 100644
--- a/mysql-test/r/events_logs_tests.result
+++ b/mysql-test/r/events_logs_tests.result
@@ -52,7 +52,8 @@ do select 'events_logs_test' as inside_event, sleep(1.5);
Nothing should be logged
-select user_host, db, sql_text from mysql.slow_log where sql_text not like 'create event%';
+select user_host, db, sql_text from mysql.slow_log
+where sql_text like 'select \'events_logs_test\'%';
user_host db sql_text
set @@global.long_query_time=1;
truncate mysql.slow_log;
@@ -61,7 +62,8 @@ do select 'events_logs_test' as inside_event, sleep(1.5);
Event sub-statement should be logged.
-select user_host, db, sql_text from mysql.slow_log where sql_text not like 'create event%';
+select user_host, db, sql_text from mysql.slow_log
+where sql_text like 'select \'events_logs_test\'%';
user_host db sql_text
USER_HOST events_test select 'events_logs_test' as inside_event, sleep(1.5)
drop database events_test;
diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result
index 447d5620a4d..39bf1470afe 100644
--- a/mysql-test/r/func_misc.result
+++ b/mysql-test/r/func_misc.result
@@ -191,3 +191,7 @@ drop table table_26093;
drop function func_26093_a;
drop function func_26093_b;
End of 5.0 tests
+select connection_id() > 0;
+connection_id() > 0
+1
+End of tests
diff --git a/mysql-test/r/handler_innodb.result b/mysql-test/r/handler_innodb.result
index 1bd50612a3f..98b8922bc5f 100644
--- a/mysql-test/r/handler_innodb.result
+++ b/mysql-test/r/handler_innodb.result
@@ -515,3 +515,23 @@ ERROR 42S02: Table 'test.t1' doesn't exist
drop table if exists t1;
Warnings:
Note 1051 Unknown table 't1'
+drop table if exists t1;
+create table t1 (a int) ENGINE=MEMORY;
+--> client 2
+handler t1 open;
+ERROR HY000: Table storage engine for 't1' doesn't have this option
+--> client 1
+drop table t1;
+drop table if exists t1;
+create table t1 (a int);
+handler t1 open as t1_alias;
+handler t1_alias read a next;
+ERROR 42000: Key 'a' doesn't exist in table 't1_alias'
+handler t1_alias READ a next where inexistent > 0;
+ERROR 42S22: Unknown column 'inexistent' in 'field list'
+handler t1_alias read a next;
+ERROR 42000: Key 'a' doesn't exist in table 't1_alias'
+handler t1_alias READ a next where inexistent > 0;
+ERROR 42S22: Unknown column 'inexistent' in 'field list'
+handler t1_alias close;
+drop table t1;
diff --git a/mysql-test/r/handler_myisam.result b/mysql-test/r/handler_myisam.result
index beb1a40c318..464b775b795 100644
--- a/mysql-test/r/handler_myisam.result
+++ b/mysql-test/r/handler_myisam.result
@@ -515,3 +515,23 @@ ERROR 42S02: Table 'test.t1' doesn't exist
drop table if exists t1;
Warnings:
Note 1051 Unknown table 't1'
+drop table if exists t1;
+create table t1 (a int) ENGINE=MEMORY;
+--> client 2
+handler t1 open;
+ERROR HY000: Table storage engine for 't1' doesn't have this option
+--> client 1
+drop table t1;
+drop table if exists t1;
+create table t1 (a int);
+handler t1 open as t1_alias;
+handler t1_alias read a next;
+ERROR 42000: Key 'a' doesn't exist in table 't1_alias'
+handler t1_alias READ a next where inexistent > 0;
+ERROR 42S22: Unknown column 'inexistent' in 'field list'
+handler t1_alias read a next;
+ERROR 42000: Key 'a' doesn't exist in table 't1_alias'
+handler t1_alias READ a next where inexistent > 0;
+ERROR 42S22: Unknown column 'inexistent' in 'field list'
+handler t1_alias close;
+drop table t1;
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index b1c41ef45e8..d0b6813cfd1 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -196,7 +196,6 @@ t1 a select
show columns from mysqltest.t1;
Field Type Null Key Default Extra
a int(11) YES NULL
-b varchar(30) YES MUL NULL
select table_name, column_name, privileges from information_schema.columns
where table_schema = 'mysqltest' and table_name = 'v1';
table_name column_name privileges
@@ -1410,6 +1409,31 @@ alter database;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
alter database test;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
+create database mysqltest;
+create table mysqltest.t1(a int, b int, c int);
+create trigger mysqltest.t1_ai after insert on mysqltest.t1
+for each row set @a = new.a + new.b + new.c;
+grant select(b) on mysqltest.t1 to mysqltest_1@localhost;
+select trigger_name from information_schema.triggers
+where event_object_table='t1';
+trigger_name
+t1_ai
+show triggers from mysqltest;
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+t1_ai INSERT t1 set @a = new.a + new.b + new.c AFTER NULL root@localhost latin1 latin1_swedish_ci latin1_swedish_ci
+show columns from t1;
+Field Type Null Key Default Extra
+b int(11) YES NULL
+select column_name from information_schema.columns where table_name='t1';
+column_name
+b
+show triggers;
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+select trigger_name from information_schema.triggers
+where event_object_table='t1';
+trigger_name
+drop user mysqltest_1@localhost;
+drop database mysqltest;
End of 5.0 tests.
select * from information_schema.engines WHERE ENGINE="MyISAM";
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
diff --git a/mysql-test/r/information_schema_db.result b/mysql-test/r/information_schema_db.result
index e5a5a583de3..51f7694ab68 100644
--- a/mysql-test/r/information_schema_db.result
+++ b/mysql-test/r/information_schema_db.result
@@ -151,13 +151,11 @@ create view v2 as select f1 from testdb_1.v1;
create view v4 as select f1,f2 from testdb_1.v3;
show fields from testdb_1.v5;
Field Type Null Key Default Extra
-f1 char(4) YES NULL
show create view testdb_1.v5;
View Create View character_set_client collation_connection
v5 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_1`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v5` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
show fields from testdb_1.v6;
Field Type Null Key Default Extra
-f1 char(4) YES NULL
show create view testdb_1.v6;
View Create View character_set_client collation_connection
v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index dce5e1a9a35..d0b67e90afb 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -501,7 +501,7 @@ ERROR 23000: Duplicate entry 'test2' for key 'ggid'
select * from t1;
id ggid email passwd
1 this will work
-3 test2 this will work
+4 test2 this will work
select * from t1 where id=1;
id ggid email passwd
1 this will work
@@ -1086,39 +1086,6 @@ n d
1 30
2 20
drop table t1,t2;
-CREATE TABLE `t1` (
-`a` int(11) NOT NULL auto_increment,
-`b` int(11) default NULL,
-PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
-CREATE TABLE `t2` (
-`a` int(11) NOT NULL auto_increment,
-`b` int(11) default NULL,
-PRIMARY KEY (`a`)
-) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
-insert into t1 values (1,1),(2,2);
-insert into t2 values (1,1),(4,4);
-reset master;
-UPDATE t2,t1 SET t2.a=t1.a+2;
-ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
-select * from t2 /* must be (3,1), (4,4) */;
-a b
-1 1
-4 4
-show master status /* there must no UPDATE in binlog */;
-File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 106
-delete from t1;
-delete from t2;
-insert into t1 values (1,2),(3,4),(4,4);
-insert into t2 values (1,2),(3,4),(4,4);
-reset master;
-UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
-ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
-show master status /* there must be no UPDATE query event */;
-File Position Binlog_Do_DB Binlog_Ignore_DB
-master-bin.000001 106
-drop table t1, t2;
create table t1 (a int, b int) engine=innodb;
insert into t1 values(20,null);
select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on
@@ -1784,13 +1751,13 @@ Variable_name Value
Innodb_page_size 16384
show status like "Innodb_rows_deleted";
Variable_name Value
-Innodb_rows_deleted 72
+Innodb_rows_deleted 70
show status like "Innodb_rows_inserted";
Variable_name Value
-Innodb_rows_inserted 1088
+Innodb_rows_inserted 1083
show status like "Innodb_rows_updated";
Variable_name Value
-Innodb_rows_updated 888
+Innodb_rows_updated 886
show status like "Innodb_row_lock_waits";
Variable_name Value
Innodb_row_lock_waits 0
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index ae442acd1b9..32c692501ad 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -1123,6 +1123,24 @@ t1 CREATE TABLE `t1` (
KEY `a` (`a`(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8
drop table t1;
+CREATE TABLE t1 (
+a INT,
+b INT,
+KEY (b)
+) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
+START TRANSACTION;
+SELECT * FROM t1 WHERE b=20 FOR UPDATE;
+a b
+2 20
+START TRANSACTION;
+SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
+a b
+1 10
+2 10
+ROLLBACK;
+ROLLBACK;
+DROP TABLE t1;
End of 5.0 tests
CREATE TABLE `t2` (
`k` int(11) NOT NULL auto_increment,
diff --git a/mysql-test/r/insert_notembedded.result b/mysql-test/r/insert_notembedded.result
index 816060b7ec9..ac69cb65972 100644
--- a/mysql-test/r/insert_notembedded.result
+++ b/mysql-test/r/insert_notembedded.result
@@ -105,3 +105,22 @@ DROP VIEW view_target2;
DROP VIEW view_target3;
DROP USER user20989@localhost;
DROP DATABASE meow;
+connection: default
+set low_priority_updates=1;
+drop table if exists t1;
+create table t1 (a int, b int, unique key t1$a (a));
+lock table t1 read;
+connection: update
+set low_priority_updates=1;
+show variables like 'low_priority_updates';
+Variable_name Value
+low_priority_updates ON
+insert into t1 values (1, 2) ON DUPLICATE KEY UPDATE b = 2;;
+connection: select
+select * from t1;
+a b
+connection: default
+select * from t1;
+a b
+drop table t1;
+set low_priority_updates=default;
diff --git a/mysql-test/r/lock_multi.result b/mysql-test/r/lock_multi.result
index e89fbec0aed..4a0f70a7b88 100644
--- a/mysql-test/r/lock_multi.result
+++ b/mysql-test/r/lock_multi.result
@@ -106,4 +106,11 @@ i
ERROR 70100: Query execution was interrupted
unlock tables;
drop table t1;
+drop table if exists t1;
+create table t1 (a int) ENGINE=MEMORY;
+--> client 2
+handler t1 open;
+ERROR HY000: Table storage engine for 't1' doesn't have this option
+--> client 1
+drop table t1;
End of 5.1 tests
diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result
index f5b369f246a..df77bc99c22 100644
--- a/mysql-test/r/mysql.result
+++ b/mysql-test/r/mysql.result
@@ -176,5 +176,7 @@ ERROR at line 1: DELIMITER cannot contain a backslash character
ERROR at line 1: DELIMITER cannot contain a backslash character
1
1
+1
+1
End of 5.0 tests
WARNING: --server-arg option not supported in this configuration.
diff --git a/mysql-test/r/mysql_upgrade.result b/mysql-test/r/mysql_upgrade.result
index 30ece1b121a..31846f68b7b 100644
--- a/mysql-test/r/mysql_upgrade.result
+++ b/mysql-test/r/mysql_upgrade.result
@@ -3,7 +3,9 @@ mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
-mysql.general_log OK
+mysql.general_log
+Error : You can't use locks with log tables.
+status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
@@ -14,7 +16,9 @@ mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.servers OK
-mysql.slow_log OK
+mysql.slow_log
+Error : You can't use locks with log tables.
+status : OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
@@ -29,7 +33,9 @@ mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
-mysql.general_log OK
+mysql.general_log
+Error : You can't use locks with log tables.
+status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
@@ -40,7 +46,9 @@ mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.servers OK
-mysql.slow_log OK
+mysql.slow_log
+Error : You can't use locks with log tables.
+status : OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
@@ -55,7 +63,9 @@ mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
-mysql.general_log OK
+mysql.general_log
+Error : You can't use locks with log tables.
+status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
@@ -66,7 +76,9 @@ mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.servers OK
-mysql.slow_log OK
+mysql.slow_log
+Error : You can't use locks with log tables.
+status : OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
@@ -83,7 +95,9 @@ mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
-mysql.general_log OK
+mysql.general_log
+Error : You can't use locks with log tables.
+status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
@@ -94,7 +108,9 @@ mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.servers OK
-mysql.slow_log OK
+mysql.slow_log
+Error : You can't use locks with log tables.
+status : OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
diff --git a/mysql-test/r/mysqlbinlog2.result b/mysql-test/r/mysqlbinlog2.result
index ef6e4ee80fd..5347787d829 100644
--- a/mysql-test/r/mysqlbinlog2.result
+++ b/mysql-test/r/mysqlbinlog2.result
@@ -18,7 +18,11 @@ insert into t1 values(null, "f");
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Start: binlog v #, server v ## created {yymmdd} {HH:MM:SS} at startup
ROLLBACK/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
use test/*!*/;
SET TIMESTAMP=1579609942/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
@@ -26,21 +30,43 @@ SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
create table t1 (a int auto_increment not null primary key, b char(3))/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
SET INSERT_ID=1/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
SET TIMESTAMP=1579609942/*!*/;
insert into t1 values(null, "a")/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
SET INSERT_ID=2/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
SET TIMESTAMP=1579609942/*!*/;
insert into t1 values(null, "b")/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
SET INSERT_ID=3/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
SET TIMESTAMP=1579609944/*!*/;
insert into t1 values(null, "c")/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
SET INSERT_ID=4/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
SET TIMESTAMP=1579609946/*!*/;
insert into t1 values(null, "d")/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
SET INSERT_ID=5/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
SET TIMESTAMP=1579609946/*!*/;
insert into t1 values(null, "e")/*!*/;
+# at {pos}
+#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Rotate to master-bin.000002 pos: {pos}
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
diff --git a/mysql-test/r/mysqlslap.result b/mysql-test/r/mysqlslap.result
index cc8bc3dac31..dfe721d10d2 100644
--- a/mysql-test/r/mysqlslap.result
+++ b/mysql-test/r/mysqlslap.result
@@ -129,7 +129,6 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
select * from t1;
select * from t2;
-select * from t1;
DROP SCHEMA IF EXISTS `mysqlslap`;
DROP SCHEMA IF EXISTS `mysqlslap`;
CREATE SCHEMA `mysqlslap`;
@@ -141,7 +140,6 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
select * from t1;
select * from t2;
-select * from t1;
DROP SCHEMA IF EXISTS `mysqlslap`;
DROP SCHEMA IF EXISTS `mysqlslap`;
CREATE SCHEMA `mysqlslap`;
@@ -153,6 +151,7 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
SHOW TABLES;
select * from t1;
+select * from t2;
SHOW TABLES;
DROP SCHEMA IF EXISTS `mysqlslap`;
DROP SCHEMA IF EXISTS `mysqlslap`;
@@ -165,6 +164,7 @@ INSERT INTO t1 VALUES (1, 'This is a test');
insert into t2 values ('test', 'test2');
SHOW TABLES;
select * from t1;
+select * from t2;
SHOW TABLES;
DROP SCHEMA IF EXISTS `mysqlslap`;
DROP SCHEMA IF EXISTS `mysqlslap`;
diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result
index 55f78d22272..d03e21b1bb0 100644
--- a/mysql-test/r/mysqltest.result
+++ b/mysql-test/r/mysqltest.result
@@ -280,8 +280,20 @@ let $B = changed value of B;
var2: content of variable 1
var3: content of variable 1 content of variable 1
length of var3 is longer than 0
+var1
+hi 1 hi there
+var2
+2
+var2 again
+2
+var3 two columns with same name
+1 2 3
+var4 from query that returns NULL
+var5 from query that returns no row
+failing query in let
+mysqltest: At line 1: Error running query 'failing query': 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing query' at line 1
mysqltest: At line 1: Missing required argument 'filename' to command 'source'
-mysqltest: At line 1: Could not open file ./non_existingFile
+mysqltest: At line 1: Could not open file './non_existingFile'
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql": At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'garbage' at line 1
@@ -340,6 +352,8 @@ here is the sourced script
In loop
here is the sourced script
here is the sourced script
+"hello"
+"hello"
mysqltest: At line 1: Missing argument to sleep
mysqltest: At line 1: Missing argument to real_sleep
mysqltest: At line 1: Invalid argument to sleep "abc"
@@ -461,7 +475,6 @@ root@localhost
--------------------------------------------------------------------------------
this will be executed
this will be executed
-mysqltest: Result length mismatch
mysqltest: The test didn't produce any output
Failing multi statement query
mysqltest: At line 3: query 'create table t1 (a int primary key);
@@ -473,6 +486,8 @@ mysqltest: At line 3: query 'create table t1 (a int primary key);
insert into t1 values (1);
select 'select-me';
insertz 'error query'' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertz 'error query'' at line 1
+
+More results from queries before failure can be found in MYSQLTEST_VARDIR/log/bug11731.log
drop table t1;
Multi statement using expected error
create table t1 (a int primary key);
@@ -520,17 +535,19 @@ drop table t1;
mysqltest: At line 1: Missing required argument 'filename' to command 'remove_file'
mysqltest: At line 1: Missing required argument 'filename' to command 'write_file'
mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found
+Content for test_file1
+mysqltest: At line 1: File already exist: 'MYSQLTEST_VARDIR/tmp/test_file1.tmp'
Some data
for cat_file command
of mysqltest
-mysqltest: At line 1: Failed to open file non_existing_file
+mysqltest: At line 1: Failed to open file 'non_existing_file'
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'mode' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode
-mysqltest: At line 1: Missing required argument 'file' to command 'chmod'
+mysqltest: At line 1: Missing required argument 'filename' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode
hello
diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result
index cb44a235f25..76326f65f08 100644
--- a/mysql-test/r/parser.result
+++ b/mysql-test/r/parser.result
@@ -273,6 +273,16 @@ create table VAR_SAMP(a int);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_SAMP(a int)' at line 1
create table VAR_SAMP (a int);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VAR_SAMP (a int)' at line 1
+DROP TABLE IF EXISTS table_25930_a;
+DROP TABLE IF EXISTS table_25930_b;
+SET SQL_MODE = 'ANSI_QUOTES';
+CREATE TABLE table_25930_a ( "blah" INT );
+CREATE TABLE table_25930_b SELECT "blah" - 1 FROM table_25930_a;
+desc table_25930_b;
+Field Type Null Key Default Extra
+"blah" - 1 bigint(12) YES NULL
+DROP TABLE table_25930_a;
+DROP TABLE table_25930_b;
SET @@sql_mode=@save_sql_mode;
select pi(3.14);
ERROR 42000: Incorrect parameter count in the call to native function 'pi'
diff --git a/mysql-test/r/parser_precedence.result b/mysql-test/r/parser_precedence.result
new file mode 100644
index 00000000000..cf301ec677b
--- /dev/null
+++ b/mysql-test/r/parser_precedence.result
@@ -0,0 +1,747 @@
+drop table if exists t1_30237_bool;
+create table t1_30237_bool(A boolean, B boolean, C boolean);
+insert into t1_30237_bool values
+(FALSE, FALSE, FALSE),
+(FALSE, FALSE, NULL),
+(FALSE, FALSE, TRUE),
+(FALSE, NULL, FALSE),
+(FALSE, NULL, NULL),
+(FALSE, NULL, TRUE),
+(FALSE, TRUE, FALSE),
+(FALSE, TRUE, NULL),
+(FALSE, TRUE, TRUE),
+(NULL, FALSE, FALSE),
+(NULL, FALSE, NULL),
+(NULL, FALSE, TRUE),
+(NULL, NULL, FALSE),
+(NULL, NULL, NULL),
+(NULL, NULL, TRUE),
+(NULL, TRUE, FALSE),
+(NULL, TRUE, NULL),
+(NULL, TRUE, TRUE),
+(TRUE, FALSE, FALSE),
+(TRUE, FALSE, NULL),
+(TRUE, FALSE, TRUE),
+(TRUE, NULL, FALSE),
+(TRUE, NULL, NULL),
+(TRUE, NULL, TRUE),
+(TRUE, TRUE, FALSE),
+(TRUE, TRUE, NULL),
+(TRUE, TRUE, TRUE) ;
+Testing OR, XOR, AND
+select A, B, A OR B, A XOR B, A AND B
+from t1_30237_bool where C is null order by A, B;
+A B A OR B A XOR B A AND B
+NULL NULL NULL NULL NULL
+NULL 0 NULL NULL 0
+NULL 1 1 NULL NULL
+0 NULL NULL NULL 0
+0 0 0 0 0
+0 1 1 1 0
+1 NULL 1 NULL NULL
+1 0 1 1 0
+1 1 1 0 1
+Testing that OR is associative
+select A, B, C, (A OR B) OR C, A OR (B OR C), A OR B OR C
+from t1_30237_bool order by A, B, C;
+A B C (A OR B) OR C A OR (B OR C) A OR B OR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 1 1 1
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 NULL NULL NULL
+NULL 0 1 1 1 1
+NULL 1 NULL 1 1 1
+NULL 1 0 1 1 1
+NULL 1 1 1 1 1
+0 NULL NULL NULL NULL NULL
+0 NULL 0 NULL NULL NULL
+0 NULL 1 1 1 1
+0 0 NULL NULL NULL NULL
+0 0 0 0 0 0
+0 0 1 1 1 1
+0 1 NULL 1 1 1
+0 1 0 1 1 1
+0 1 1 1 1 1
+1 NULL NULL 1 1 1
+1 NULL 0 1 1 1
+1 NULL 1 1 1 1
+1 0 NULL 1 1 1
+1 0 0 1 1 1
+1 0 1 1 1 1
+1 1 NULL 1 1 1
+1 1 0 1 1 1
+1 1 1 1 1 1
+select count(*) from t1_30237_bool
+where ((A OR B) OR C) != (A OR (B OR C));
+count(*)
+0
+Testing that XOR is associative
+select A, B, C, (A XOR B) XOR C, A XOR (B XOR C), A XOR B XOR C
+from t1_30237_bool order by A, B, C;
+A B C (A XOR B) XOR C A XOR (B XOR C) A XOR B XOR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 NULL NULL NULL
+NULL 0 1 NULL NULL NULL
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 NULL NULL NULL
+NULL 1 1 NULL NULL NULL
+0 NULL NULL NULL NULL NULL
+0 NULL 0 NULL NULL NULL
+0 NULL 1 NULL NULL NULL
+0 0 NULL NULL NULL NULL
+0 0 0 0 0 0
+0 0 1 1 1 1
+0 1 NULL NULL NULL NULL
+0 1 0 1 1 1
+0 1 1 0 0 0
+1 NULL NULL NULL NULL NULL
+1 NULL 0 NULL NULL NULL
+1 NULL 1 NULL NULL NULL
+1 0 NULL NULL NULL NULL
+1 0 0 1 1 1
+1 0 1 0 0 0
+1 1 NULL NULL NULL NULL
+1 1 0 0 0 0
+1 1 1 1 1 1
+select count(*) from t1_30237_bool
+where ((A XOR B) XOR C) != (A XOR (B XOR C));
+count(*)
+0
+Testing that AND is associative
+select A, B, C, (A AND B) AND C, A AND (B AND C), A AND B AND C
+from t1_30237_bool order by A, B, C;
+A B C (A AND B) AND C A AND (B AND C) A AND B AND C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 0 0 0
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL 0 0 0
+NULL 0 0 0 0 0
+NULL 0 1 0 0 0
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 0 0 0
+NULL 1 1 NULL NULL NULL
+0 NULL NULL 0 0 0
+0 NULL 0 0 0 0
+0 NULL 1 0 0 0
+0 0 NULL 0 0 0
+0 0 0 0 0 0
+0 0 1 0 0 0
+0 1 NULL 0 0 0
+0 1 0 0 0 0
+0 1 1 0 0 0
+1 NULL NULL NULL NULL NULL
+1 NULL 0 0 0 0
+1 NULL 1 NULL NULL NULL
+1 0 NULL 0 0 0
+1 0 0 0 0 0
+1 0 1 0 0 0
+1 1 NULL NULL NULL NULL
+1 1 0 0 0 0
+1 1 1 1 1 1
+select count(*) from t1_30237_bool
+where ((A AND B) AND C) != (A AND (B AND C));
+count(*)
+0
+Testing that AND has precedence over OR
+select A, B, C, (A OR B) AND C, A OR (B AND C), A OR B AND C
+from t1_30237_bool order by A, B, C;
+A B C (A OR B) AND C A OR (B AND C) A OR B AND C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 0 NULL NULL
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 0 NULL NULL
+NULL 0 1 NULL NULL NULL
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 0 NULL NULL
+NULL 1 1 1 1 1
+0 NULL NULL NULL NULL NULL
+0 NULL 0 0 0 0
+0 NULL 1 NULL NULL NULL
+0 0 NULL 0 0 0
+0 0 0 0 0 0
+0 0 1 0 0 0
+0 1 NULL NULL NULL NULL
+0 1 0 0 0 0
+0 1 1 1 1 1
+1 NULL NULL NULL 1 1
+1 NULL 0 0 1 1
+1 NULL 1 1 1 1
+1 0 NULL NULL 1 1
+1 0 0 0 1 1
+1 0 1 1 1 1
+1 1 NULL NULL 1 1
+1 1 0 0 1 1
+1 1 1 1 1 1
+select count(*) from t1_30237_bool
+where (A OR (B AND C)) != (A OR B AND C);
+count(*)
+0
+select A, B, C, (A AND B) OR C, A AND (B OR C), A AND B OR C
+from t1_30237_bool order by A, B, C;
+A B C (A AND B) OR C A AND (B OR C) A AND B OR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 1 NULL 1
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 0 0 0
+NULL 0 1 1 NULL 1
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 NULL NULL NULL
+NULL 1 1 1 NULL 1
+0 NULL NULL NULL 0 NULL
+0 NULL 0 0 0 0
+0 NULL 1 1 0 1
+0 0 NULL NULL 0 NULL
+0 0 0 0 0 0
+0 0 1 1 0 1
+0 1 NULL NULL 0 NULL
+0 1 0 0 0 0
+0 1 1 1 0 1
+1 NULL NULL NULL NULL NULL
+1 NULL 0 NULL NULL NULL
+1 NULL 1 1 1 1
+1 0 NULL NULL NULL NULL
+1 0 0 0 0 0
+1 0 1 1 1 1
+1 1 NULL 1 1 1
+1 1 0 1 1 1
+1 1 1 1 1 1
+select count(*) from t1_30237_bool
+where ((A AND B) OR C) != (A AND B OR C);
+count(*)
+0
+Testing that AND has precedence over XOR
+select A, B, C, (A XOR B) AND C, A XOR (B AND C), A XOR B AND C
+from t1_30237_bool order by A, B, C;
+A B C (A XOR B) AND C A XOR (B AND C) A XOR B AND C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 0 NULL NULL
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 0 NULL NULL
+NULL 0 1 NULL NULL NULL
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 0 NULL NULL
+NULL 1 1 NULL NULL NULL
+0 NULL NULL NULL NULL NULL
+0 NULL 0 0 0 0
+0 NULL 1 NULL NULL NULL
+0 0 NULL 0 0 0
+0 0 0 0 0 0
+0 0 1 0 0 0
+0 1 NULL NULL NULL NULL
+0 1 0 0 0 0
+0 1 1 1 1 1
+1 NULL NULL NULL NULL NULL
+1 NULL 0 0 1 1
+1 NULL 1 NULL NULL NULL
+1 0 NULL NULL 1 1
+1 0 0 0 1 1
+1 0 1 1 1 1
+1 1 NULL 0 NULL NULL
+1 1 0 0 1 1
+1 1 1 0 0 0
+select count(*) from t1_30237_bool
+where (A XOR (B AND C)) != (A XOR B AND C);
+count(*)
+0
+select A, B, C, (A AND B) XOR C, A AND (B XOR C), A AND B XOR C
+from t1_30237_bool order by A, B, C;
+A B C (A AND B) XOR C A AND (B XOR C) A AND B XOR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 0 0 0
+NULL 0 1 1 NULL 1
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 NULL NULL NULL
+NULL 1 1 NULL 0 NULL
+0 NULL NULL NULL 0 NULL
+0 NULL 0 0 0 0
+0 NULL 1 1 0 1
+0 0 NULL NULL 0 NULL
+0 0 0 0 0 0
+0 0 1 1 0 1
+0 1 NULL NULL 0 NULL
+0 1 0 0 0 0
+0 1 1 1 0 1
+1 NULL NULL NULL NULL NULL
+1 NULL 0 NULL NULL NULL
+1 NULL 1 NULL NULL NULL
+1 0 NULL NULL NULL NULL
+1 0 0 0 0 0
+1 0 1 1 1 1
+1 1 NULL NULL NULL NULL
+1 1 0 1 1 1
+1 1 1 0 0 0
+select count(*) from t1_30237_bool
+where ((A AND B) XOR C) != (A AND B XOR C);
+count(*)
+0
+Testing that XOR has precedence over OR
+select A, B, C, (A XOR B) OR C, A XOR (B OR C), A XOR B OR C
+from t1_30237_bool order by A, B, C;
+A B C (A XOR B) OR C A XOR (B OR C) A XOR B OR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 1 NULL 1
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 NULL NULL NULL
+NULL 0 1 1 NULL 1
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 NULL NULL NULL
+NULL 1 1 1 NULL 1
+0 NULL NULL NULL NULL NULL
+0 NULL 0 NULL NULL NULL
+0 NULL 1 1 1 1
+0 0 NULL NULL NULL NULL
+0 0 0 0 0 0
+0 0 1 1 1 1
+0 1 NULL 1 1 1
+0 1 0 1 1 1
+0 1 1 1 1 1
+1 NULL NULL NULL NULL NULL
+1 NULL 0 NULL NULL NULL
+1 NULL 1 1 0 1
+1 0 NULL 1 NULL 1
+1 0 0 1 1 1
+1 0 1 1 0 1
+1 1 NULL NULL 0 NULL
+1 1 0 0 0 0
+1 1 1 1 0 1
+select count(*) from t1_30237_bool
+where ((A XOR B) OR C) != (A XOR B OR C);
+count(*)
+0
+select A, B, C, (A OR B) XOR C, A OR (B XOR C), A OR B XOR C
+from t1_30237_bool order by A, B, C;
+A B C (A OR B) XOR C A OR (B XOR C) A OR B XOR C
+NULL NULL NULL NULL NULL NULL
+NULL NULL 0 NULL NULL NULL
+NULL NULL 1 NULL NULL NULL
+NULL 0 NULL NULL NULL NULL
+NULL 0 0 NULL NULL NULL
+NULL 0 1 NULL 1 1
+NULL 1 NULL NULL NULL NULL
+NULL 1 0 1 1 1
+NULL 1 1 0 NULL NULL
+0 NULL NULL NULL NULL NULL
+0 NULL 0 NULL NULL NULL
+0 NULL 1 NULL NULL NULL
+0 0 NULL NULL NULL NULL
+0 0 0 0 0 0
+0 0 1 1 1 1
+0 1 NULL NULL NULL NULL
+0 1 0 1 1 1
+0 1 1 0 0 0
+1 NULL NULL NULL 1 1
+1 NULL 0 1 1 1
+1 NULL 1 0 1 1
+1 0 NULL NULL 1 1
+1 0 0 1 1 1
+1 0 1 0 1 1
+1 1 NULL NULL 1 1
+1 1 0 1 1 1
+1 1 1 0 1 1
+select count(*) from t1_30237_bool
+where (A OR (B XOR C)) != (A OR B XOR C);
+count(*)
+0
+drop table t1_30237_bool;
+Testing that NOT has precedence over OR
+select (NOT FALSE) OR TRUE, NOT (FALSE OR TRUE), NOT FALSE OR TRUE;
+(NOT FALSE) OR TRUE NOT (FALSE OR TRUE) NOT FALSE OR TRUE
+1 0 1
+Testing that NOT has precedence over XOR
+select (NOT FALSE) XOR FALSE, NOT (FALSE XOR FALSE), NOT FALSE XOR FALSE;
+(NOT FALSE) XOR FALSE NOT (FALSE XOR FALSE) NOT FALSE XOR FALSE
+1 1 1
+Testing that NOT has precedence over AND
+select (NOT FALSE) AND FALSE, NOT (FALSE AND FALSE), NOT FALSE AND FALSE;
+(NOT FALSE) AND FALSE NOT (FALSE AND FALSE) NOT FALSE AND FALSE
+0 1 0
+Testing that NOT is associative
+select NOT NOT TRUE, NOT NOT NOT FALSE;
+NOT NOT TRUE NOT NOT NOT FALSE
+1 1
+Testing that IS has precedence over NOT
+select (NOT NULL) IS TRUE, NOT (NULL IS TRUE), NOT NULL IS TRUE;
+(NOT NULL) IS TRUE NOT (NULL IS TRUE) NOT NULL IS TRUE
+0 1 1
+select (NOT NULL) IS NOT TRUE, NOT (NULL IS NOT TRUE), NOT NULL IS NOT TRUE;
+(NOT NULL) IS NOT TRUE NOT (NULL IS NOT TRUE) NOT NULL IS NOT TRUE
+1 0 0
+select (NOT NULL) IS FALSE, NOT (NULL IS FALSE), NOT NULL IS FALSE;
+(NOT NULL) IS FALSE NOT (NULL IS FALSE) NOT NULL IS FALSE
+0 1 1
+select (NOT NULL) IS NOT FALSE, NOT (NULL IS NOT FALSE), NOT NULL IS NOT FALSE;
+(NOT NULL) IS NOT FALSE NOT (NULL IS NOT FALSE) NOT NULL IS NOT FALSE
+1 0 0
+select (NOT TRUE) IS UNKNOWN, NOT (TRUE IS UNKNOWN), NOT TRUE IS UNKNOWN;
+(NOT TRUE) IS UNKNOWN NOT (TRUE IS UNKNOWN) NOT TRUE IS UNKNOWN
+0 1 1
+select (NOT TRUE) IS NOT UNKNOWN, NOT (TRUE IS NOT UNKNOWN), NOT TRUE IS NOT UNKNOWN;
+(NOT TRUE) IS NOT UNKNOWN NOT (TRUE IS NOT UNKNOWN) NOT TRUE IS NOT UNKNOWN
+1 0 0
+select (NOT TRUE) IS NULL, NOT (TRUE IS NULL), NOT TRUE IS NULL;
+(NOT TRUE) IS NULL NOT (TRUE IS NULL) NOT TRUE IS NULL
+0 1 1
+select (NOT TRUE) IS NOT NULL, NOT (TRUE IS NOT NULL), NOT TRUE IS NOT NULL;
+(NOT TRUE) IS NOT NULL NOT (TRUE IS NOT NULL) NOT TRUE IS NOT NULL
+1 0 0
+Testing that IS [NOT] TRUE/FALSE/UNKNOWN predicates are not associative
+select TRUE IS TRUE IS TRUE IS TRUE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS TRUE IS TRUE' at line 1
+select FALSE IS NOT TRUE IS NOT TRUE IS NOT TRUE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS NOT TRUE IS NOT TRUE' at line 1
+select NULL IS FALSE IS FALSE IS FALSE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS FALSE IS FALSE' at line 1
+select TRUE IS NOT FALSE IS NOT FALSE IS NOT FALSE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS NOT FALSE IS NOT FALSE' at line 1
+select FALSE IS UNKNOWN IS UNKNOWN IS UNKNOWN;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS UNKNOWN IS UNKNOWN' at line 1
+select TRUE IS NOT UNKNOWN IS NOT UNKNOWN IS NOT UNKNOWN;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS NOT UNKNOWN IS NOT UNKNOWN' at line 1
+Testing that IS [NOT] NULL predicates are associative
+select FALSE IS NULL IS NULL IS NULL;
+FALSE IS NULL IS NULL IS NULL
+0
+select TRUE IS NOT NULL IS NOT NULL IS NOT NULL;
+TRUE IS NOT NULL IS NOT NULL IS NOT NULL
+1
+Testing that comparison operators are left associative
+select 1 <=> 2 <=> 2, (1 <=> 2) <=> 2, 1 <=> (2 <=> 2);
+1 <=> 2 <=> 2 (1 <=> 2) <=> 2 1 <=> (2 <=> 2)
+0 0 1
+select 1 = 2 = 2, (1 = 2) = 2, 1 = (2 = 2);
+1 = 2 = 2 (1 = 2) = 2 1 = (2 = 2)
+0 0 1
+select 1 != 2 != 3, (1 != 2) != 3, 1 != (2 != 3);
+1 != 2 != 3 (1 != 2) != 3 1 != (2 != 3)
+1 1 0
+select 1 <> 2 <> 3, (1 <> 2) <> 3, 1 <> (2 <> 3);
+1 <> 2 <> 3 (1 <> 2) <> 3 1 <> (2 <> 3)
+1 1 0
+select 1 < 2 < 3, (1 < 2) < 3, 1 < (2 < 3);
+1 < 2 < 3 (1 < 2) < 3 1 < (2 < 3)
+1 1 0
+select 3 <= 2 <= 1, (3 <= 2) <= 1, 3 <= (2 <= 1);
+3 <= 2 <= 1 (3 <= 2) <= 1 3 <= (2 <= 1)
+1 1 0
+select 1 > 2 > 3, (1 > 2) > 3, 1 > (2 > 3);
+1 > 2 > 3 (1 > 2) > 3 1 > (2 > 3)
+0 0 1
+select 1 >= 2 >= 3, (1 >= 2) >= 3, 1 >= (2 >= 3);
+1 >= 2 >= 3 (1 >= 2) >= 3 1 >= (2 >= 3)
+0 0 1
+Testing that | is associative
+select 0xF0 | 0x0F | 0x55, (0xF0 | 0x0F) | 0x55, 0xF0 | (0x0F | 0x55);
+0xF0 | 0x0F | 0x55 (0xF0 | 0x0F) | 0x55 0xF0 | (0x0F | 0x55)
+255 255 255
+Testing that & is associative
+select 0xF5 & 0x5F & 0x55, (0xF5 & 0x5F) & 0x55, 0xF5 & (0x5F & 0x55);
+0xF5 & 0x5F & 0x55 (0xF5 & 0x5F) & 0x55 0xF5 & (0x5F & 0x55)
+85 85 85
+Testing that << is left associative
+select 4 << 3 << 2, (4 << 3) << 2, 4 << (3 << 2);
+4 << 3 << 2 (4 << 3) << 2 4 << (3 << 2)
+128 128 16384
+Testing that >> is left associative
+select 256 >> 3 >> 2, (256 >> 3) >> 2, 256 >> (3 >> 2);
+256 >> 3 >> 2 (256 >> 3) >> 2 256 >> (3 >> 2)
+8 8 256
+Testing that & has precedence over |
+select 0xF0 & 0x0F | 0x55, (0xF0 & 0x0F) | 0x55, 0xF0 & (0x0F | 0x55);
+0xF0 & 0x0F | 0x55 (0xF0 & 0x0F) | 0x55 0xF0 & (0x0F | 0x55)
+85 85 80
+select 0x55 | 0xF0 & 0x0F, (0x55 | 0xF0) & 0x0F, 0x55 | (0xF0 & 0x0F);
+0x55 | 0xF0 & 0x0F (0x55 | 0xF0) & 0x0F 0x55 | (0xF0 & 0x0F)
+85 5 85
+Testing that << has precedence over |
+select 0x0F << 4 | 0x0F, (0x0F << 4) | 0x0F, 0x0F << (4 | 0x0F);
+0x0F << 4 | 0x0F (0x0F << 4) | 0x0F 0x0F << (4 | 0x0F)
+255 255 491520
+select 0x0F | 0x0F << 4, (0x0F | 0x0F) << 4, 0x0F | (0x0F << 4);
+0x0F | 0x0F << 4 (0x0F | 0x0F) << 4 0x0F | (0x0F << 4)
+255 240 255
+Testing that >> has precedence over |
+select 0xF0 >> 4 | 0xFF, (0xF0 >> 4) | 0xFF, 0xF0 >> (4 | 0xFF);
+0xF0 >> 4 | 0xFF (0xF0 >> 4) | 0xFF 0xF0 >> (4 | 0xFF)
+255 255 0
+select 0xFF | 0xF0 >> 4, (0xFF | 0xF0) >> 4, 0xFF | (0xF0 >> 4);
+0xFF | 0xF0 >> 4 (0xFF | 0xF0) >> 4 0xFF | (0xF0 >> 4)
+255 15 255
+Testing that << has precedence over &
+select 0x0F << 4 & 0xF0, (0x0F << 4) & 0xF0, 0x0F << (4 & 0xF0);
+0x0F << 4 & 0xF0 (0x0F << 4) & 0xF0 0x0F << (4 & 0xF0)
+240 240 15
+select 0xF0 & 0x0F << 4, (0xF0 & 0x0F) << 4, 0xF0 & (0x0F << 4);
+0xF0 & 0x0F << 4 (0xF0 & 0x0F) << 4 0xF0 & (0x0F << 4)
+240 0 240
+Testing that >> has precedence over &
+select 0xF0 >> 4 & 0x55, (0xF0 >> 4) & 0x55, 0xF0 >> (4 & 0x55);
+0xF0 >> 4 & 0x55 (0xF0 >> 4) & 0x55 0xF0 >> (4 & 0x55)
+5 5 15
+select 0x0F & 0xF0 >> 4, (0x0F & 0xF0) >> 4, 0x0F & (0xF0 >> 4);
+0x0F & 0xF0 >> 4 (0x0F & 0xF0) >> 4 0x0F & (0xF0 >> 4)
+15 0 15
+Testing that >> and << have the same precedence
+select 0xFF >> 4 << 2, (0xFF >> 4) << 2, 0xFF >> (4 << 2);
+0xFF >> 4 << 2 (0xFF >> 4) << 2 0xFF >> (4 << 2)
+60 60 0
+select 0x0F << 4 >> 2, (0x0F << 4) >> 2, 0x0F << (4 >> 2);
+0x0F << 4 >> 2 (0x0F << 4) >> 2 0x0F << (4 >> 2)
+60 60 30
+Testing that binary + is associative
+select 1 + 2 + 3, (1 + 2) + 3, 1 + (2 + 3);
+1 + 2 + 3 (1 + 2) + 3 1 + (2 + 3)
+6 6 6
+Testing that binary - is left associative
+select 1 - 2 - 3, (1 - 2) - 3, 1 - (2 - 3);
+1 - 2 - 3 (1 - 2) - 3 1 - (2 - 3)
+-4 -4 2
+Testing that binary + and binary - have the same precedence
+select 1 + 2 - 3, (1 + 2) - 3, 1 + (2 - 3);
+1 + 2 - 3 (1 + 2) - 3 1 + (2 - 3)
+0 0 0
+select 1 - 2 + 3, (1 - 2) + 3, 1 - (2 + 3);
+1 - 2 + 3 (1 - 2) + 3 1 - (2 + 3)
+2 2 -4
+Testing that binary + has precedence over |
+select 0xF0 + 0x0F | 0x55, (0xF0 + 0x0F) | 0x55, 0xF0 + (0x0F | 0x55);
+0xF0 + 0x0F | 0x55 (0xF0 + 0x0F) | 0x55 0xF0 + (0x0F | 0x55)
+255 255 335
+select 0x55 | 0xF0 + 0x0F, (0x55 | 0xF0) + 0x0F, 0x55 | (0xF0 + 0x0F);
+0x55 | 0xF0 + 0x0F (0x55 | 0xF0) + 0x0F 0x55 | (0xF0 + 0x0F)
+255 260 255
+Testing that binary + has precedence over &
+select 0xF0 + 0x0F & 0x55, (0xF0 + 0x0F) & 0x55, 0xF0 + (0x0F & 0x55);
+0xF0 + 0x0F & 0x55 (0xF0 + 0x0F) & 0x55 0xF0 + (0x0F & 0x55)
+85 85 245
+select 0x55 & 0xF0 + 0x0F, (0x55 & 0xF0) + 0x0F, 0x55 & (0xF0 + 0x0F);
+0x55 & 0xF0 + 0x0F (0x55 & 0xF0) + 0x0F 0x55 & (0xF0 + 0x0F)
+85 95 85
+Testing that binary + has precedence over <<
+select 2 + 3 << 4, (2 + 3) << 4, 2 + (3 << 4);
+2 + 3 << 4 (2 + 3) << 4 2 + (3 << 4)
+80 80 50
+select 3 << 4 + 2, (3 << 4) + 2, 3 << (4 + 2);
+3 << 4 + 2 (3 << 4) + 2 3 << (4 + 2)
+192 50 192
+Testing that binary + has precedence over >>
+select 4 + 3 >> 2, (4 + 3) >> 2, 4 + (3 >> 2);
+4 + 3 >> 2 (4 + 3) >> 2 4 + (3 >> 2)
+1 1 4
+select 3 >> 2 + 1, (3 >> 2) + 1, 3 >> (2 + 1);
+3 >> 2 + 1 (3 >> 2) + 1 3 >> (2 + 1)
+0 1 0
+Testing that binary - has precedence over |
+select 0xFF - 0x0F | 0x55, (0xFF - 0x0F) | 0x55, 0xFF - (0x0F | 0x55);
+0xFF - 0x0F | 0x55 (0xFF - 0x0F) | 0x55 0xFF - (0x0F | 0x55)
+245 245 160
+select 0x55 | 0xFF - 0xF0, (0x55 | 0xFF) - 0xF0, 0x55 | (0xFF - 0xF0);
+0x55 | 0xFF - 0xF0 (0x55 | 0xFF) - 0xF0 0x55 | (0xFF - 0xF0)
+95 15 95
+Testing that binary - has precedence over &
+select 0xFF - 0xF0 & 0x55, (0xFF - 0xF0) & 0x55, 0xFF - (0xF0 & 0x55);
+0xFF - 0xF0 & 0x55 (0xFF - 0xF0) & 0x55 0xFF - (0xF0 & 0x55)
+5 5 175
+select 0x55 & 0xFF - 0xF0, (0x55 & 0xFF) - 0xF0, 0x55 & (0xFF - 0xF0);
+0x55 & 0xFF - 0xF0 (0x55 & 0xFF) - 0xF0 0x55 & (0xFF - 0xF0)
+5 -155 5
+Testing that binary - has precedence over <<
+select 16 - 3 << 2, (16 - 3) << 2, 16 - (3 << 2);
+16 - 3 << 2 (16 - 3) << 2 16 - (3 << 2)
+52 52 4
+select 4 << 3 - 2, (4 << 3) - 2, 4 << (3 - 2);
+4 << 3 - 2 (4 << 3) - 2 4 << (3 - 2)
+8 30 8
+Testing that binary - has precedence over >>
+select 16 - 3 >> 2, (16 - 3) >> 2, 16 - (3 >> 2);
+16 - 3 >> 2 (16 - 3) >> 2 16 - (3 >> 2)
+3 3 16
+select 16 >> 3 - 2, (16 >> 3) - 2, 16 >> (3 - 2);
+16 >> 3 - 2 (16 >> 3) - 2 16 >> (3 - 2)
+8 0 8
+Testing that * is associative
+select 2 * 3 * 4, (2 * 3) * 4, 2 * (3 * 4);
+2 * 3 * 4 (2 * 3) * 4 2 * (3 * 4)
+24 24 24
+Testing that * has precedence over |
+select 2 * 0x40 | 0x0F, (2 * 0x40) | 0x0F, 2 * (0x40 | 0x0F);
+2 * 0x40 | 0x0F (2 * 0x40) | 0x0F 2 * (0x40 | 0x0F)
+143 143 158
+select 0x0F | 2 * 0x40, (0x0F | 2) * 0x40, 0x0F | (2 * 0x40);
+0x0F | 2 * 0x40 (0x0F | 2) * 0x40 0x0F | (2 * 0x40)
+143 960 143
+Testing that * has precedence over &
+select 2 * 0x40 & 0x55, (2 * 0x40) & 0x55, 2 * (0x40 & 0x55);
+2 * 0x40 & 0x55 (2 * 0x40) & 0x55 2 * (0x40 & 0x55)
+0 0 128
+select 0xF0 & 2 * 0x40, (0xF0 & 2) * 0x40, 0xF0 & (2 * 0x40);
+0xF0 & 2 * 0x40 (0xF0 & 2) * 0x40 0xF0 & (2 * 0x40)
+128 0 128
+Testing that * has precedence over <<
+select 5 * 3 << 4, (5 * 3) << 4, 5 * (3 << 4);
+5 * 3 << 4 (5 * 3) << 4 5 * (3 << 4)
+240 240 240
+select 2 << 3 * 4, (2 << 3) * 4, 2 << (3 * 4);
+2 << 3 * 4 (2 << 3) * 4 2 << (3 * 4)
+8192 64 8192
+Testing that * has precedence over >>
+select 3 * 4 >> 2, (3 * 4) >> 2, 3 * (4 >> 2);
+3 * 4 >> 2 (3 * 4) >> 2 3 * (4 >> 2)
+3 3 3
+select 4 >> 2 * 3, (4 >> 2) * 3, 4 >> (2 * 3);
+4 >> 2 * 3 (4 >> 2) * 3 4 >> (2 * 3)
+0 3 0
+Testing that * has precedence over binary +
+select 2 * 3 + 4, (2 * 3) + 4, 2 * (3 + 4);
+2 * 3 + 4 (2 * 3) + 4 2 * (3 + 4)
+10 10 14
+select 2 + 3 * 4, (2 + 3) * 4, 2 + (3 * 4);
+2 + 3 * 4 (2 + 3) * 4 2 + (3 * 4)
+14 20 14
+Testing that * has precedence over binary -
+select 4 * 3 - 2, (4 * 3) - 2, 4 * (3 - 2);
+4 * 3 - 2 (4 * 3) - 2 4 * (3 - 2)
+10 10 4
+select 4 - 3 * 2, (4 - 3) * 2, 4 - (3 * 2);
+4 - 3 * 2 (4 - 3) * 2 4 - (3 * 2)
+-2 2 -2
+Testing that / is left associative
+select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3);
+15 / 5 / 3 (15 / 5) / 3 15 / (5 / 3)
+1.00000000 1.00000000 9.0000
+Testing that / has precedence over |
+select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2);
+105 / 5 | 2 (105 / 5) | 2 105 / (5 | 2)
+23 23 15.0000
+select 105 | 2 / 5, (105 | 2) / 5, 105 | (2 / 5);
+105 | 2 / 5 (105 | 2) / 5 105 | (2 / 5)
+105 21.4000 105
+Testing that / has precedence over &
+select 105 / 5 & 0x0F, (105 / 5) & 0x0F, 105 / (5 & 0x0F);
+105 / 5 & 0x0F (105 / 5) & 0x0F 105 / (5 & 0x0F)
+5 5 21.0000
+select 0x0F & 105 / 5, (0x0F & 105) / 5, 0x0F & (105 / 5);
+0x0F & 105 / 5 (0x0F & 105) / 5 0x0F & (105 / 5)
+5 1.8000 5
+Testing that / has precedence over <<
+select 0x80 / 4 << 2, (0x80 / 4) << 2, 0x80 / (4 << 2);
+0x80 / 4 << 2 (0x80 / 4) << 2 0x80 / (4 << 2)
+128 128 8.0000
+select 0x80 << 4 / 2, (0x80 << 4) / 2, 0x80 << (4 / 2);
+0x80 << 4 / 2 (0x80 << 4) / 2 0x80 << (4 / 2)
+512 1024.0000 512
+Testing that / has precedence over >>
+select 0x80 / 4 >> 2, (0x80 / 4) >> 2, 0x80 / (4 >> 2);
+0x80 / 4 >> 2 (0x80 / 4) >> 2 0x80 / (4 >> 2)
+8 8 128.0000
+select 0x80 >> 4 / 2, (0x80 >> 4) / 2, 0x80 >> (4 / 2);
+0x80 >> 4 / 2 (0x80 >> 4) / 2 0x80 >> (4 / 2)
+32 4.0000 32
+Testing that / has precedence over binary +
+select 0x80 / 2 + 2, (0x80 / 2) + 2, 0x80 / (2 + 2);
+0x80 / 2 + 2 (0x80 / 2) + 2 0x80 / (2 + 2)
+66.0000 66.0000 32.0000
+select 0x80 + 2 / 2, (0x80 + 2) / 2, 0x80 + (2 / 2);
+0x80 + 2 / 2 (0x80 + 2) / 2 0x80 + (2 / 2)
+129.0000 65.0000 129.0000
+Testing that / has precedence over binary -
+select 0x80 / 4 - 2, (0x80 / 4) - 2, 0x80 / (4 - 2);
+0x80 / 4 - 2 (0x80 / 4) - 2 0x80 / (4 - 2)
+30.0000 30.0000 64.0000
+select 0x80 - 4 / 2, (0x80 - 4) / 2, 0x80 - (4 / 2);
+0x80 - 4 / 2 (0x80 - 4) / 2 0x80 - (4 / 2)
+126.0000 62.0000 126.0000
+Testing that ^ is associative
+select 0xFF ^ 0xF0 ^ 0x0F, (0xFF ^ 0xF0) ^ 0x0F, 0xFF ^ (0xF0 ^ 0x0F);
+0xFF ^ 0xF0 ^ 0x0F (0xFF ^ 0xF0) ^ 0x0F 0xFF ^ (0xF0 ^ 0x0F)
+0 0 0
+select 0xFF ^ 0xF0 ^ 0x55, (0xFF ^ 0xF0) ^ 0x55, 0xFF ^ (0xF0 ^ 0x55);
+0xFF ^ 0xF0 ^ 0x55 (0xFF ^ 0xF0) ^ 0x55 0xFF ^ (0xF0 ^ 0x55)
+90 90 90
+Testing that ^ has precedence over |
+select 0xFF ^ 0xF0 | 0x0F, (0xFF ^ 0xF0) | 0x0F, 0xFF ^ (0xF0 | 0x0F);
+0xFF ^ 0xF0 | 0x0F (0xFF ^ 0xF0) | 0x0F 0xFF ^ (0xF0 | 0x0F)
+15 15 0
+select 0xF0 | 0xFF ^ 0xF0, (0xF0 | 0xFF) ^ 0xF0, 0xF0 | (0xFF ^ 0xF0);
+0xF0 | 0xFF ^ 0xF0 (0xF0 | 0xFF) ^ 0xF0 0xF0 | (0xFF ^ 0xF0)
+255 15 255
+Testing that ^ has precedence over &
+select 0xFF ^ 0xF0 & 0x0F, (0xFF ^ 0xF0) & 0x0F, 0xFF ^ (0xF0 & 0x0F);
+0xFF ^ 0xF0 & 0x0F (0xFF ^ 0xF0) & 0x0F 0xFF ^ (0xF0 & 0x0F)
+15 15 255
+select 0x0F & 0xFF ^ 0xF0, (0x0F & 0xFF) ^ 0xF0, 0x0F & (0xFF ^ 0xF0);
+0x0F & 0xFF ^ 0xF0 (0x0F & 0xFF) ^ 0xF0 0x0F & (0xFF ^ 0xF0)
+15 255 15
+Testing that ^ has precedence over <<
+select 0xFF ^ 0xF0 << 2, (0xFF ^ 0xF0) << 2, 0xFF ^ (0xF0 << 2);
+0xFF ^ 0xF0 << 2 (0xFF ^ 0xF0) << 2 0xFF ^ (0xF0 << 2)
+60 60 831
+select 0x0F << 2 ^ 0xFF, (0x0F << 2) ^ 0xFF, 0x0F << (2 ^ 0xFF);
+0x0F << 2 ^ 0xFF (0x0F << 2) ^ 0xFF 0x0F << (2 ^ 0xFF)
+0 195 0
+Testing that ^ has precedence over >>
+select 0xFF ^ 0xF0 >> 2, (0xFF ^ 0xF0) >> 2, 0xFF ^ (0xF0 >> 2);
+0xFF ^ 0xF0 >> 2 (0xFF ^ 0xF0) >> 2 0xFF ^ (0xF0 >> 2)
+3 3 195
+select 0xFF >> 2 ^ 0xF0, (0xFF >> 2) ^ 0xF0, 0xFF >> (2 ^ 0xF0);
+0xFF >> 2 ^ 0xF0 (0xFF >> 2) ^ 0xF0 0xFF >> (2 ^ 0xF0)
+0 207 0
+Testing that ^ has precedence over binary +
+select 0xFF ^ 0xF0 + 0x0F, (0xFF ^ 0xF0) + 0x0F, 0xFF ^ (0xF0 + 0x0F);
+0xFF ^ 0xF0 + 0x0F (0xFF ^ 0xF0) + 0x0F 0xFF ^ (0xF0 + 0x0F)
+30 30 0
+select 0x0F + 0xFF ^ 0xF0, (0x0F + 0xFF) ^ 0xF0, 0x0F + (0xFF ^ 0xF0);
+0x0F + 0xFF ^ 0xF0 (0x0F + 0xFF) ^ 0xF0 0x0F + (0xFF ^ 0xF0)
+30 510 30
+Testing that ^ has precedence over binary -
+select 0xFF ^ 0xF0 - 1, (0xFF ^ 0xF0) - 1, 0xFF ^ (0xF0 - 1);
+0xFF ^ 0xF0 - 1 (0xFF ^ 0xF0) - 1 0xFF ^ (0xF0 - 1)
+14 14 16
+select 0x55 - 0x0F ^ 0x55, (0x55 - 0x0F) ^ 0x55, 0x55 - (0x0F ^ 0x55);
+0x55 - 0x0F ^ 0x55 (0x55 - 0x0F) ^ 0x55 0x55 - (0x0F ^ 0x55)
+-5 19 -5
+Testing that ^ has precedence over *
+select 0xFF ^ 0xF0 * 2, (0xFF ^ 0xF0) * 2, 0xFF ^ (0xF0 * 2);
+0xFF ^ 0xF0 * 2 (0xFF ^ 0xF0) * 2 0xFF ^ (0xF0 * 2)
+30 30 287
+select 2 * 0xFF ^ 0xF0, (2 * 0xFF) ^ 0xF0, 2 * (0xFF ^ 0xF0);
+2 * 0xFF ^ 0xF0 (2 * 0xFF) ^ 0xF0 2 * (0xFF ^ 0xF0)
+30 270 30
+Testing that ^ has precedence over /
+select 0xFF ^ 0xF0 / 2, (0xFF ^ 0xF0) / 2, 0xFF ^ (0xF0 / 2);
+0xFF ^ 0xF0 / 2 (0xFF ^ 0xF0) / 2 0xFF ^ (0xF0 / 2)
+7.5000 7.5000 135
+select 0xF2 / 2 ^ 0xF0, (0xF2 / 2) ^ 0xF0, 0xF2 / (2 ^ 0xF0);
+0xF2 / 2 ^ 0xF0 (0xF2 / 2) ^ 0xF0 0xF2 / (2 ^ 0xF0)
+1.0000 137 1.0000
+Testing that ^ has precedence over %
+select 0xFF ^ 0xF0 % 0x20, (0xFF ^ 0xF0) % 0x20, 0xFF ^ (0xF0 % 0x20);
+0xFF ^ 0xF0 % 0x20 (0xFF ^ 0xF0) % 0x20 0xFF ^ (0xF0 % 0x20)
+15 15 239
+select 0xFF % 0x20 ^ 0xF0, (0xFF % 0x20) ^ 0xF0, 0xFF % (0x20 ^ 0xF0);
+0xFF % 0x20 ^ 0xF0 (0xFF % 0x20) ^ 0xF0 0xFF % (0x20 ^ 0xF0)
+47 239 47
+Testing that ^ has precedence over DIV
+select 0xFF ^ 0xF0 DIV 2, (0xFF ^ 0xF0) DIV 2, 0xFF ^ (0xF0 DIV 2);
+0xFF ^ 0xF0 DIV 2 (0xFF ^ 0xF0) DIV 2 0xFF ^ (0xF0 DIV 2)
+7 7 135
+select 0xF2 DIV 2 ^ 0xF0, (0xF2 DIV 2) ^ 0xF0, 0xF2 DIV (2 ^ 0xF0);
+0xF2 DIV 2 ^ 0xF0 (0xF2 DIV 2) ^ 0xF0 0xF2 DIV (2 ^ 0xF0)
+1 137 1
+Testing that ^ has precedence over MOD
+select 0xFF ^ 0xF0 MOD 0x20, (0xFF ^ 0xF0) MOD 0x20, 0xFF ^ (0xF0 MOD 0x20);
+0xFF ^ 0xF0 MOD 0x20 (0xFF ^ 0xF0) MOD 0x20 0xFF ^ (0xF0 MOD 0x20)
+15 15 239
+select 0xFF MOD 0x20 ^ 0xF0, (0xFF MOD 0x20) ^ 0xF0, 0xFF MOD (0x20 ^ 0xF0);
+0xFF MOD 0x20 ^ 0xF0 (0xFF MOD 0x20) ^ 0xF0 0xFF MOD (0x20 ^ 0xF0)
+47 239 47
diff --git a/mysql-test/r/partition_pruning.result b/mysql-test/r/partition_pruning.result
index 9595676016c..776e6f3a15a 100644
--- a/mysql-test/r/partition_pruning.result
+++ b/mysql-test/r/partition_pruning.result
@@ -631,7 +631,7 @@ flush status;
delete from t2 where b > 5;
show status like 'Handler_read_rnd_next';
Variable_name Value
-Handler_read_rnd_next 1215
+Handler_read_rnd_next 1115
show status like 'Handler_read_key';
Variable_name Value
Handler_read_key 0
@@ -645,7 +645,7 @@ flush status;
delete from t2 where b < 5 or b > 3;
show status like 'Handler_read_rnd_next';
Variable_name Value
-Handler_read_rnd_next 1215
+Handler_read_rnd_next 1115
show status like 'Handler_read_key';
Variable_name Value
Handler_read_key 0
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 2e226ea84bc..321b08628ee 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -1650,6 +1650,35 @@ a (select count(*) from t2)
3 0
4 0
drop table t1,t2;
+DROP DATABASE IF EXISTS bug30269;
+FLUSH STATUS;
+CREATE DATABASE bug30269;
+USE bug30269;
+CREATE TABLE test1 (id int, name varchar(23));
+CREATE VIEW view1 AS SELECT * FROM test1;
+INSERT INTO test1 VALUES (5, 'testit');
+GRANT SELECT (id) ON TABLE bug30269.test1 TO 'bug30269'@'localhost';
+GRANT SELECT ON TABLE bug30269.view1 TO 'bug30269'@'localhost';
+set global query_cache_size= 81920;
+USE bug30269;
+show status like 'Qcache_queries_in_cache';
+Variable_name Value
+Qcache_queries_in_cache 0
+# Select statement not stored in query cache because of column privileges.
+SELECT id FROM test1 WHERE id>2;
+id
+5
+show status like 'Qcache_queries_in_cache';
+Variable_name Value
+Qcache_queries_in_cache 0
+SELECT id FROM view1 WHERE id>2;
+id
+5
+show status like 'Qcache_queries_in_cache';
+Variable_name Value
+Qcache_queries_in_cache 1
+DROP DATABASE bug30269;
+DROP USER 'bug30269'@'localhost';
set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
diff --git a/mysql-test/r/query_cache_ps_no_prot.result b/mysql-test/r/query_cache_ps_no_prot.result
index 29d16d8a619..0efb2540c64 100644
--- a/mysql-test/r/query_cache_ps_no_prot.result
+++ b/mysql-test/r/query_cache_ps_no_prot.result
@@ -371,5 +371,163 @@ Variable_name Value
Qcache_hits 21
drop table t1;
---- disconnect connection con1 ----
+########################################################################
+#
+# BUG#25843: Changing default database between PREPARE and EXECUTE of
+# statement breaks binlog.
+#
+########################################################################
+
+#
+# Check that default database and its attributes are fixed at the
+# creation time.
+#
+
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+CREATE TABLE mysqltest1.t1(msg VARCHAR(255));
+CREATE TABLE mysqltest2.t1(msg VARCHAR(255));
+
+use mysqltest1;
+PREPARE stmt_a_1 FROM 'INSERT INTO t1 VALUES(DATABASE())';
+PREPARE stmt_a_2 FROM 'INSERT INTO t1 VALUES(@@collation_database)';
+
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+use mysqltest2;
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+SELECT * FROM mysqltest1.t1;
+msg
+mysqltest1
+utf8_unicode_ci
+mysqltest1
+utf8_unicode_ci
+
+SELECT * FROM mysqltest2.t1;
+msg
+
+DROP PREPARE stmt_a_1;
+DROP PREPARE stmt_a_2;
+
+#
+# The Query Cache test case.
+#
+
+DELETE FROM mysqltest1.t1;
+DELETE FROM mysqltest2.t1;
+
+INSERT INTO mysqltest1.t1 VALUES('mysqltest1.t1');
+INSERT INTO mysqltest2.t1 VALUES('mysqltest2.t1');
+
+use mysqltest1;
+PREPARE stmt_b_1 FROM 'SELECT * FROM t1';
+
+use mysqltest2;
+PREPARE stmt_b_2 FROM 'SELECT * FROM t1';
+
+EXECUTE stmt_b_1;
+msg
+mysqltest1.t1
+
+EXECUTE stmt_b_2;
+msg
+mysqltest2.t1
+
+use mysqltest1;
+
+EXECUTE stmt_b_1;
+msg
+mysqltest1.t1
+
+EXECUTE stmt_b_2;
+msg
+mysqltest2.t1
+
+DROP PREPARE stmt_b_1;
+DROP PREPARE stmt_b_2;
+
+use test;
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+
+#
+# Check that prepared statements work properly when there is no current
+# database.
+#
+
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+use mysqltest1;
+
+PREPARE stmt_c_1 FROM 'SELECT DATABASE(), @@collation_database';
+
+use mysqltest2;
+
+PREPARE stmt_c_2 FROM 'SELECT DATABASE(), @@collation_database';
+
+DROP DATABASE mysqltest2;
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+EXECUTE stmt_c_1;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+EXECUTE stmt_c_2;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+Warnings:
+Note 1049 Unknown database 'mysqltest2'
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+PREPARE stmt_c_3 FROM 'SELECT DATABASE(), @@collation_database';
+
+EXECUTE stmt_c_3;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+use mysqltest1;
+
+EXECUTE stmt_c_2;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+Warnings:
+Note 1049 Unknown database 'mysqltest2'
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+EXECUTE stmt_c_3;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+DROP DATABASE mysqltest1;
+
+use test;
+
+########################################################################
set @@global.query_cache_size=@initial_query_cache_size;
flush status;
diff --git a/mysql-test/r/query_cache_ps_ps_prot.result b/mysql-test/r/query_cache_ps_ps_prot.result
index ba675d57f50..dc0c4a0193a 100644
--- a/mysql-test/r/query_cache_ps_ps_prot.result
+++ b/mysql-test/r/query_cache_ps_ps_prot.result
@@ -371,5 +371,163 @@ Variable_name Value
Qcache_hits 19
drop table t1;
---- disconnect connection con1 ----
+########################################################################
+#
+# BUG#25843: Changing default database between PREPARE and EXECUTE of
+# statement breaks binlog.
+#
+########################################################################
+
+#
+# Check that default database and its attributes are fixed at the
+# creation time.
+#
+
+DROP DATABASE IF EXISTS mysqltest1;
+DROP DATABASE IF EXISTS mysqltest2;
+
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+CREATE TABLE mysqltest1.t1(msg VARCHAR(255));
+CREATE TABLE mysqltest2.t1(msg VARCHAR(255));
+
+use mysqltest1;
+PREPARE stmt_a_1 FROM 'INSERT INTO t1 VALUES(DATABASE())';
+PREPARE stmt_a_2 FROM 'INSERT INTO t1 VALUES(@@collation_database)';
+
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+use mysqltest2;
+EXECUTE stmt_a_1;
+EXECUTE stmt_a_2;
+
+SELECT * FROM mysqltest1.t1;
+msg
+mysqltest1
+utf8_unicode_ci
+mysqltest1
+utf8_unicode_ci
+
+SELECT * FROM mysqltest2.t1;
+msg
+
+DROP PREPARE stmt_a_1;
+DROP PREPARE stmt_a_2;
+
+#
+# The Query Cache test case.
+#
+
+DELETE FROM mysqltest1.t1;
+DELETE FROM mysqltest2.t1;
+
+INSERT INTO mysqltest1.t1 VALUES('mysqltest1.t1');
+INSERT INTO mysqltest2.t1 VALUES('mysqltest2.t1');
+
+use mysqltest1;
+PREPARE stmt_b_1 FROM 'SELECT * FROM t1';
+
+use mysqltest2;
+PREPARE stmt_b_2 FROM 'SELECT * FROM t1';
+
+EXECUTE stmt_b_1;
+msg
+mysqltest1.t1
+
+EXECUTE stmt_b_2;
+msg
+mysqltest2.t1
+
+use mysqltest1;
+
+EXECUTE stmt_b_1;
+msg
+mysqltest1.t1
+
+EXECUTE stmt_b_2;
+msg
+mysqltest2.t1
+
+DROP PREPARE stmt_b_1;
+DROP PREPARE stmt_b_2;
+
+use test;
+
+DROP DATABASE mysqltest1;
+DROP DATABASE mysqltest2;
+
+#
+# Check that prepared statements work properly when there is no current
+# database.
+#
+
+CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci;
+CREATE DATABASE mysqltest2 COLLATE utf8_general_ci;
+
+use mysqltest1;
+
+PREPARE stmt_c_1 FROM 'SELECT DATABASE(), @@collation_database';
+
+use mysqltest2;
+
+PREPARE stmt_c_2 FROM 'SELECT DATABASE(), @@collation_database';
+
+DROP DATABASE mysqltest2;
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+EXECUTE stmt_c_1;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+EXECUTE stmt_c_2;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+Warnings:
+Note 1049 Unknown database 'mysqltest2'
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+PREPARE stmt_c_3 FROM 'SELECT DATABASE(), @@collation_database';
+
+EXECUTE stmt_c_3;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+use mysqltest1;
+
+EXECUTE stmt_c_2;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+Warnings:
+Note 1049 Unknown database 'mysqltest2'
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+EXECUTE stmt_c_3;
+DATABASE() @@collation_database
+NULL latin1_swedish_ci
+
+SELECT DATABASE(), @@collation_database;
+DATABASE() @@collation_database
+mysqltest1 utf8_unicode_ci
+
+DROP DATABASE mysqltest1;
+
+use test;
+
+########################################################################
set @@global.query_cache_size=@initial_query_cache_size;
flush status;
diff --git a/mysql-test/r/view_query_cache.result b/mysql-test/r/query_cache_with_views.result
index 03430bd504b..03430bd504b 100644
--- a/mysql-test/r/view_query_cache.result
+++ b/mysql-test/r/query_cache_with_views.result
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index 1ebed6d17d5..48e8bf933e1 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -3990,4 +3990,61 @@ id select_type table type possible_keys key key_len ref rows Extra
EXPLAIN SELECT c1 FROM t1 WHERE (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT COUNT(c2))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) > 0;
ERROR HY000: Too high level of nesting for select
DROP TABLE t1;
+CREATE TABLE t1 (
+c1 int(11) NOT NULL AUTO_INCREMENT,
+c2 varchar(1000) DEFAULT NULL,
+c3 bigint(20) DEFAULT NULL,
+c4 bigint(20) DEFAULT NULL,
+PRIMARY KEY (c1)
+);
+EXPLAIN EXTENDED
+SELECT join_2.c1
+FROM
+t1 AS join_0,
+t1 AS join_1,
+t1 AS join_2,
+t1 AS join_3,
+t1 AS join_4,
+t1 AS join_5,
+t1 AS join_6,
+t1 AS join_7
+WHERE
+join_0.c1=join_1.c1 AND
+join_1.c1=join_2.c1 AND
+join_2.c1=join_3.c1 AND
+join_3.c1=join_4.c1 AND
+join_4.c1=join_5.c1 AND
+join_5.c1=join_6.c1 AND
+join_6.c1=join_7.c1
+OR
+join_0.c2 < '?' AND
+join_1.c2 < '?' AND
+join_2.c2 > '?' AND
+join_2.c2 < '!' AND
+join_3.c2 > '?' AND
+join_4.c2 = '?' AND
+join_5.c2 <> '?' AND
+join_6.c2 <> '?' AND
+join_7.c2 >= '?' AND
+join_0.c1=join_1.c1 AND
+join_1.c1=join_2.c1 AND
+join_2.c1=join_3.c1 AND
+join_3.c1=join_4.c1 AND
+join_4.c1=join_5.c1 AND
+join_5.c1=join_6.c1 AND
+join_6.c1=join_7.c1
+GROUP BY
+join_3.c1,
+join_2.c1,
+join_7.c1,
+join_1.c1,
+join_0.c1;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+Warnings:
+Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
+SHOW WARNINGS;
+Level Code Message
+Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
+DROP TABLE t1;
End of 5.0 tests
diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result
index 675a59f1fb7..2e0d437aeb6 100644
--- a/mysql-test/r/sp-error.result
+++ b/mysql-test/r/sp-error.result
@@ -969,6 +969,18 @@ CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create user 'mysqltest
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE FUNCTION bug_13627_f() returns int BEGIN create user 'mysqltest_1'; return 1; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN grant select on t1 to 'mysqltest_1'; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug21975() returns int BEGIN grant select on t1 to 'mysqltest_1'; return 1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN revoke select on t1 from 'mysqltest_1'; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug21975() returns int BEGIN revoke select on t1 from 'mysqltest_1'; return 1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN revoke all privileges on *.* from 'mysqltest_1'; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
+CREATE FUNCTION bug21975() returns int BEGIN revoke all privileges on *.* from 'mysqltest_1'; return 1; END |
+ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop user 'mysqltest_1'; END |
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
CREATE FUNCTION bug_13627_f() returns int BEGIN drop user 'mysqltest_1'; return 1; END |
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
index 163bbb4aab4..fd09701c125 100644
--- a/mysql-test/r/sp.result
+++ b/mysql-test/r/sp.result
@@ -6546,4 +6546,56 @@ DROP VIEW v1;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP TABLE t1;
+
+# Bug#13675.
+
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP TABLE IF EXISTS t1;
+
+CREATE PROCEDURE p1(v DATETIME) CREATE TABLE t1 SELECT v;
+CREATE PROCEDURE p2(v INT) CREATE TABLE t1 SELECT v;
+
+CALL p1(NOW());
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` datetime DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+
+DROP TABLE t1;
+
+CALL p1('text');
+Warnings:
+Warning 1264 Out of range value for column 'v' at row 1
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` datetime DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+
+DROP TABLE t1;
+
+CALL p2(10);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` bigint(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+
+DROP TABLE t1;
+
+CALL p2('text');
+Warnings:
+Warning 1366 Incorrect integer value: 'text' for column 'v' at row 1
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `v` bigint(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+
+DROP TABLE t1;
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
End of 5.0 tests
diff --git a/mysql-test/r/sp_notembedded.result b/mysql-test/r/sp_notembedded.result
index 0b1fa565d28..277eea8570e 100644
--- a/mysql-test/r/sp_notembedded.result
+++ b/mysql-test/r/sp_notembedded.result
@@ -208,3 +208,26 @@ GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
drop user mysqltest_1@localhost;
drop procedure 15298_1;
drop procedure 15298_2;
+drop table if exists t1;
+drop procedure if exists p1;
+create table t1 (value varchar(15));
+create procedure p1() update t1 set value='updated' where value='old';
+call p1();
+insert into t1 (value) values ("old");
+select get_lock('b26162',120);
+get_lock('b26162',120)
+1
+select 'rl_acquirer', value from t1 where get_lock('b26162',120);;
+set session low_priority_updates=on;
+call p1();;
+select 'rl_contender', value from t1;
+rl_contender value
+rl_contender old
+select release_lock('b26162');
+release_lock('b26162')
+1
+rl_acquirer value
+rl_acquirer old
+drop procedure p1;
+drop table t1;
+set session low_priority_updates=default;
diff --git a/mysql-test/r/status.result b/mysql-test/r/status.result
index cf35781d008..8a2c3ae344e 100644
--- a/mysql-test/r/status.result
+++ b/mysql-test/r/status.result
@@ -16,12 +16,9 @@ unlock tables;
lock tables t1 read;
update t1 set n = 3;
unlock tables;
-show status like 'Table_locks_waited%';
+show status like 'Table_locks_waited';
Variable_name Value
Table_locks_waited 1
-select * from information_schema.session_status where variable_name like 'Table_locks_waited%';
-VARIABLE_NAME VARIABLE_VALUE
-TABLE_LOCKS_WAITED 1
drop table t1;
select 1;
1
diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result
index c1dccd53035..cc1a2535896 100644
--- a/mysql-test/r/strict.result
+++ b/mysql-test/r/strict.result
@@ -215,11 +215,11 @@ ERROR 22007: Incorrect date value: '2004-10-00 15:30:00' for column 'col1' at ro
INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect date value: '2004-09-31 15:30:00' for column 'col1' at row 1
INSERT INTO t1 (col1) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
INSERT INTO t1 (col1) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect date value: '2003-02-29 15:30:00' for column 'col1' at row 1
INSERT INTO t1 (col1) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_date
INSERT INTO t1 (col1) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
ERROR 22007: Incorrect date value: '0000-00-00' for column 'col1' at row 1
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
@@ -230,11 +230,11 @@ ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col2' a
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect datetime value: '2004-09-31 15:30:00' for column 'col2' at row 1
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect datetime value: '2003-02-29 15:30:00' for column 'col2' at row 1
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_date
INSERT INTO t1 (col2) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
ERROR 22007: Incorrect datetime value: '0000-00-00' for column 'col2' at row 1
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.10.0000 15.30','%d.%m.%Y %H.%i'));
@@ -246,11 +246,11 @@ ERROR 22007: Incorrect datetime value: '2004-10-00 15:30:00' for column 'col3' a
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect datetime value: '2004-09-31 15:30:00' for column 'col3' at row 1
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('29.02.2003 15.30','%d.%m.%Y %H.%i'));
ERROR 22007: Incorrect datetime value: '2003-02-29 15:30:00' for column 'col3' at row 1
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('15.13.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '15.13.2004 15.30' for function str_to_date
INSERT INTO t1 (col3) VALUES(STR_TO_DATE('00.00.0000','%d.%m.%Y'));
ERROR 22007: Incorrect datetime value: '0000-00-00' for column 'col3' at row 1
drop table t1;
@@ -1070,24 +1070,24 @@ create table t1 (col1 datetime);
insert into t1 values(STR_TO_DATE('31.10.2004 15.30 abc','%d.%m.%Y %H.%i'));
ERROR 22007: Truncated incorrect datetime value: '31.10.2004 15.30 abc'
insert into t1 values(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
-ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_time
+ERROR HY000: Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
insert into t1 values(STR_TO_DATE('2004.12.12 22:22:33 AM','%Y.%m.%d %r'));
-ERROR HY000: Incorrect time value: '22:22:33 AM' for function str_to_time
+ERROR HY000: Incorrect time value: '22:22:33 AM' for function str_to_date
insert into t1 values(STR_TO_DATE('2004.12.12 abc','%Y.%m.%d %T'));
-ERROR HY000: Incorrect time value: 'abc' for function str_to_time
+ERROR HY000: Incorrect time value: 'abc' for function str_to_date
set sql_mode='';
insert into t1 values(STR_TO_DATE('31.10.2004 15.30 abc','%d.%m.%Y %H.%i'));
Warnings:
Warning 1292 Truncated incorrect datetime value: '31.10.2004 15.30 abc'
insert into t1 values(STR_TO_DATE('32.10.2004 15.30','%d.%m.%Y %H.%i'));
Warnings:
-Error 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_time
+Error 1411 Incorrect datetime value: '32.10.2004 15.30' for function str_to_date
insert into t1 values(STR_TO_DATE('2004.12.12 22:22:33 AM','%Y.%m.%d %r'));
Warnings:
-Error 1411 Incorrect time value: '22:22:33 AM' for function str_to_time
+Error 1411 Incorrect time value: '22:22:33 AM' for function str_to_date
insert into t1 values(STR_TO_DATE('2004.12.12 abc','%Y.%m.%d %T'));
Warnings:
-Error 1411 Incorrect time value: 'abc' for function str_to_time
+Error 1411 Incorrect time value: 'abc' for function str_to_date
insert into t1 values(STR_TO_DATE('31.10.2004 15.30','%d.%m.%Y %H.%i'));
insert into t1 values(STR_TO_DATE('2004.12.12 11:22:33 AM','%Y.%m.%d %r'));
insert into t1 values(STR_TO_DATE('2004.12.12 10:22:59','%Y.%m.%d %T'));
@@ -1105,9 +1105,9 @@ select count(*) from t1 where STR_TO_DATE('2004.12.12 10:22:61','%Y.%m.%d %T') I
count(*)
7
Warnings:
-Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_time
-Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_time
-Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_time
+Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_date
+Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_date
+Error 1411 Incorrect datetime value: '2004.12.12 10:22:61' for function str_to_date
drop table t1;
create table t1 (col1 char(3), col2 integer);
insert into t1 (col1) values (cast(1000 as char(3)));
diff --git a/mysql-test/r/udf.result b/mysql-test/r/udf.result
index bba722e523c..f1e47905f5d 100644
--- a/mysql-test/r/udf.result
+++ b/mysql-test/r/udf.result
@@ -334,4 +334,28 @@ Qcache_queries_in_cache 0
drop table t1;
drop function metaphon;
set GLOBAL query_cache_size=default;
+CREATE TABLE const_len_bug (
+str_const varchar(4000),
+result1 varchar(4000),
+result2 varchar(4000)
+);
+CREATE TRIGGER check_const_len_trigger BEFORE INSERT ON const_len_bug FOR EACH ROW BEGIN
+set NEW.str_const = 'bar';
+set NEW.result2 = check_const_len(NEW.str_const);
+END |
+CREATE PROCEDURE check_const_len_sp (IN str_const VARCHAR(4000))
+BEGIN
+DECLARE result VARCHAR(4000);
+SET result = check_const_len(str_const);
+insert into const_len_bug values(str_const, result, "");
+END |
+CREATE FUNCTION check_const_len RETURNS string SONAME "UDF_EXAMPLE_LIB";
+CALL check_const_len_sp("foo");
+SELECT * from const_len_bug;
+str_const result1 result2
+bar Correct length Correct length
+DROP FUNCTION check_const_len;
+DROP PROCEDURE check_const_len_sp;
+DROP TRIGGER check_const_len_trigger;
+DROP TABLE const_len_bug;
End of 5.0 tests.
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc b/mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc
index 8ae6e5fc807..8ae6e5fc807 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc
+++ b/mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc b/mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc
index 9eb41fb007b..9eb41fb007b 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc
+++ b/mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc b/mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc
index 34d8b1d1c4d..34d8b1d1c4d 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc
+++ b/mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc b/mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc
index d2f5c82a241..d2f5c82a241 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc
+++ b/mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc b/mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc
index 941ba418f32..941ba418f32 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc
+++ b/mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc
diff --git a/mysql-test/suite/binlog/r/binlog_innodb.result b/mysql-test/suite/binlog/r/binlog_innodb.result
index 9dfb6544811..34538eb5215 100644
--- a/mysql-test/suite/binlog/r/binlog_innodb.result
+++ b/mysql-test/suite/binlog/r/binlog_innodb.result
@@ -135,4 +135,37 @@ show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 1
drop table t1;
+CREATE TABLE `t1` (
+`a` int(11) NOT NULL auto_increment,
+`b` int(11) default NULL,
+PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
+CREATE TABLE `t2` (
+`a` int(11) NOT NULL auto_increment,
+`b` int(11) default NULL,
+PRIMARY KEY (`a`)
+) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
+insert into t1 values (1,1),(2,2);
+insert into t2 values (1,1),(4,4);
+reset master;
+UPDATE t2,t1 SET t2.a=t1.a+2;
+ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
+select * from t2 /* must be (3,1), (4,4) */;
+a b
+1 1
+4 4
+show master status /* there must no UPDATE in binlog */;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 106
+delete from t1;
+delete from t2;
+insert into t1 values (1,2),(3,4),(4,4);
+insert into t2 values (1,2),(3,4),(4,4);
+reset master;
+UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
+ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
+show master status /* there must be no UPDATE query event */;
+File Position Binlog_Do_DB Binlog_Ignore_DB
+master-bin.000001 106
+drop table t1, t2;
End of tests
diff --git a/mysql-test/suite/binlog/t/binlog_innodb.test b/mysql-test/suite/binlog/t/binlog_innodb.test
index 3bad61db23a..df99e3786ee 100644
--- a/mysql-test/suite/binlog/t/binlog_innodb.test
+++ b/mysql-test/suite/binlog/t/binlog_innodb.test
@@ -130,4 +130,43 @@ show status like "binlog_cache_use";
show status like "binlog_cache_disk_use";
drop table t1;
+#
+# Bug#27716 multi-update did partially and has not binlogged
+#
+
+CREATE TABLE `t1` (
+ `a` int(11) NOT NULL auto_increment,
+ `b` int(11) default NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
+
+CREATE TABLE `t2` (
+ `a` int(11) NOT NULL auto_increment,
+ `b` int(11) default NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
+
+# A. testing multi_update::send_eof() execution branch
+insert into t1 values (1,1),(2,2);
+insert into t2 values (1,1),(4,4);
+reset master;
+--error ER_DUP_ENTRY
+UPDATE t2,t1 SET t2.a=t1.a+2;
+# check
+select * from t2 /* must be (3,1), (4,4) */;
+show master status /* there must no UPDATE in binlog */;
+
+# B. testing multi_update::send_error() execution branch
+delete from t1;
+delete from t2;
+insert into t1 values (1,2),(3,4),(4,4);
+insert into t2 values (1,2),(3,4),(4,4);
+reset master;
+--error ER_DUP_ENTRY
+UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
+show master status /* there must be no UPDATE query event */;
+
+# cleanup bug#27716
+drop table t1, t2;
+
--echo End of tests
diff --git a/mysql-test/suite/funcs_1/datadict/datadict_priv.inc b/mysql-test/suite/funcs_1/datadict/datadict_priv.inc
new file mode 100644
index 00000000000..36143e1526e
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/datadict_priv.inc
@@ -0,0 +1,107 @@
+############## suite/funcs_1/datadict/datadict_priv.inc ################
+# #
+# DDL and DML operations on information_schema tables #
+# #
+# Creation: #
+# 2007-08 hhunger Implement this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+# Last update: #
+# 2007-08-14 mleich Some cleanup #
+# #
+########################################################################
+
+# These variables have to be set before sourcing this file.
+#
+# information_schema table to be tested
+# let $table= processlist;
+#
+# columns of the information_schema table e.g. to use in a select.
+# let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO;
+#
+# Where clause for an update.
+# let $update_where= WHERE id=1 ;
+#
+# Column to be used in the SET of an update.
+# let $set_column= user='any_user' ;
+#
+# Where clause of a delete.
+# let $delete_where= WHERE id=1 ;
+#
+# Column to be dropped.
+# let $drop_column= user;
+#
+# Column to be indexed
+# let $index_col= user;
+
+
+# data access
+
+eval CREATE TEMPORARY TABLE test.t_$table AS SELECT * FROM $table;
+
+eval UPDATE test.t_$table SET user='horst' $update_where ;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval INSERT INTO $table SELECT * FROM test.t_$table;
+
+# bug#30208: CREATE TABLE ...LIKE does not accept dbname.tablename:unknown database
+eval DROP TABLE test.t_$table;
+
+--error ER_VIEW_NONUPD_CHECK
+eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table WITH CHECK OPTION;
+
+eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval UPDATE test.v_$TABLE SET TIME=NOW() WHERE id = 1;
+
+eval DROP VIEW test.v_$table;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval UPDATE $table SET $set_column $update_where;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval DELETE FROM $table $delete_where;
+
+# change privileges
+
+--error ER_DBACCESS_DENIED_ERROR
+eval REVOKE ALL ON $table FROM current_user;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval GRANT INSERT,UPDATE ON $table TO current_user;
+
+SHOW GRANTS;
+
+#----------------------------------------------------------------------
+# table access
+
+--error ER_DBACCESS_DENIED_ERROR
+eval CREATE INDEX i_$table ON $table ($index_col);
+
+--error ER_DBACCESS_DENIED_ERROR
+eval DROP TABLE $table;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval ALTER TABLE $table DROP COLUMN $drop_column;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval ALTER TABLE $table ADD COLUMN (my_column INT);
+
+--error ER_UNKNOWN_TABLE
+eval RENAME TABLE $table TO new_$table;
+
+--error ER_DBACCESS_DENIED_ERROR
+eval RENAME TABLE $table TO files;
+
+--error ER_UNKNOWN_TABLE
+eval CREATE TABLE new_$table AS SELECT * FROM $table;
+
+#----------------------------------------------------------------------
+# database access
+
+--error ER_DBACCESS_DENIED_ERROR
+DROP DATABASE information_schema;
+
+--error ER_DBACCESS_DENIED_ERROR
+RENAME DATABASE information_schema TO info_schema;
diff --git a/mysql-test/suite/funcs_1/datadict/processlist_priv.inc b/mysql-test/suite/funcs_1/datadict/processlist_priv.inc
new file mode 100644
index 00000000000..5f7fed018ed
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/processlist_priv.inc
@@ -0,0 +1,432 @@
+############ suite/funcs_1/datadict/processlist_priv.inc ###############
+# #
+# Testing of privileges around #
+# SELECT ... PROCESSLIST/SHOW PROCESSLIST #
+# #
+# Note(mleich): #
+# There is a significant risk to get an unstable test because of #
+# timing issues. #
+# Example1: #
+# 1. Disconnect connection X #
+# 2. Switch to connection Y #
+# 3. SHOW PROCESSLIST might present a record like #
+# <ID> <user> <host> <db> Quit 0 cleaning up NULL #
+# or even a row where connection X is without #
+# "Quit" or "cleaning up". #
+# That means our SHOW PROCESSLIST can come too early. #
+# Solution: #
+# Close the connections at the end of the test. #
+# Example2: #
+# 1. connection X: SHOW PROCESSLIST/GRANT ... etc. #
+# 2. Switch to connection Y #
+# 3. SHOW PROCESSLIST might present a record like #
+# <ID> <user> <host> <db> Query TIME cleaning up <command> #
+# <ID> <user> <host> <db> Query TIME writing to net <command> #
+# Problems happens more often in case of slow filesystem! #
+# First Solution: #
+# Insert a dummy SQL command where the cleanup is most probably #
+# fast before switching to another connection and running #
+# SHOW/SELECT PROCESSLIST. #
+# Suppress writing to protocol by assignment to $variable. #
+# let $my_var= `SELECT 1`; #
+# Even the 'SELECT 1' was in some cases in state #
+# "writing to net". #
+# Final Solution: #
+# --real_sleep 0.3 #
+# This value was at least on my box sufficient. #
+# Please inform us if this test fails so that we can adjust #
+# the sleep time better or switch to poll routines. #
+# #
+# Storage engine variants of this test do not make sense. #
+# - I_S tables use the MEMORY storage engine whenever possible. #
+# - There are some I_S table which need column data types which #
+# are not supported by MEMORY. Example: LONGTEXT/BLOB #
+# MyISAM will be used for such tables. #
+# The column PROCESSLIST.INFO is of data type LONGTEXT #
+# ----> MyISAM #
+# - There is no impact of the GLOBAL(server) or SESSION default #
+# storage engine setting on the engine used for I_S tables. #
+# That means we cannot get NDB or InnoDB instead. #
+# #
+# Creation: #
+# 2007-08 hhunger Implement this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+# Last update: #
+# 2007-08-14 mleich Corrections #
+# #
+########################################################################
+
+# The following variables are used in "datadict_priv.inc" and here.
+#
+# information_schema table to be tested
+let $table= processlist;
+#
+# columns of the information_schema table e.g. to use in a select.
+let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO;
+#
+# Where clause for an update.
+let $update_where= WHERE id=1 ;
+#
+# Column to be used in the SET of an update.
+let $set_column= user='any_user' ;
+#
+# Where clause of a delete.
+let $delete_where= WHERE id=1 ;
+#
+# Column to be dropped.
+let $drop_column= user;
+#
+# Column to be indexed
+let $index_col= user;
+
+USE information_schema;
+
+--echo ####################################################################################
+--echo 1 Prepare test.
+--echo connection default (user=root)
+--echo ####################################################################################
+
+--echo ####################################################################################
+--echo 1.1 Create two user
+--echo ####################################################################################
+# access to info tables as normal user
+--disable_abort_on_error
+DROP USER ddicttestuser1@'localhost';
+DROP USER ddicttestuser2@'localhost';
+--enable_abort_on_error
+CREATE USER ddicttestuser1@'localhost';
+CREATE USER ddicttestuser2@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+SET PASSWORD FOR ddicttestuser2@'localhost' = PASSWORD('ddictpass');
+
+--echo ####################################################################################
+--echo 1.2 Establish connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+connect (con100,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo ####################################################################################
+
+
+--echo ####################################################################################
+--echo 2 connection default(user=root with default privileges):
+--echo SHOW/SELECT shows all processes/threads.
+--echo ####################################################################################
+connection default;
+eval SHOW CREATE TABLE $table;
+--replace_column 6 TIME
+eval SHOW $table;
+--replace_column 6 TIME
+eval SELECT * FROM $table $select_where ORDER BY id;
+--replace_column 6 TIME
+eval SELECT $columns FROM $table $select_where ORDER BY id;
+--source suite/funcs_1/datadict/datadict_priv.inc
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 3 Switch to connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+connection con100;
+--echo SHOW/SELECT shows only the processes (1) of the user.
+--echo ####################################################################################
+eval SHOW CREATE TABLE $table;
+--replace_column 6 TIME
+eval SHOW $table;
+--replace_column 6 TIME
+eval SELECT * FROM $table $select_where ORDER BY id;
+--replace_column 6 TIME
+eval SELECT $columns FROM $table $select_where ORDER BY id;
+--source suite/funcs_1/datadict/datadict_priv.inc
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 4 Grant PROCESS privilege to ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+GRANT PROCESS ON *.* TO ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 4.1 Existing connection con100 (ddicttestuser1)
+--echo The user ddicttestuser1 has the PROCESS privilege, but the connection was
+--echo established before PROCESS was granted.
+--echo SHOW/SELECT shows only the processes (1) of the user.
+--echo ####################################################################################
+connection con100;
+SHOW GRANTS;
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
+--echo SHOW/SELECT shows all processes/threads.
+--echo ####################################################################################
+connect (con101,localhost,ddicttestuser1,ddictpass,information_schema);
+SHOW GRANTS;
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 5 Grant PROCESS privilege to anonymous user.
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+GRANT PROCESS ON *.* TO ''@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 5.1 Establish connection (anonymous1,localhost,'',,information_schema)
+--echo anonymous user with PROCESS privilege
+--echo SHOW/SELECT shows all processes/threads.
+--echo ####################################################################################
+connect (anonymous1,localhost,'',,information_schema);
+SHOW GRANTS;
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 6 Revoke PROCESS privilege from ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 6.1 New connection con102 (ddicttestuser1 has no more PROCESS privilege)
+connect (con102,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo Again (compared to state before GRANT PROCESS) only the processes of
+--echo ddicttestuser1 are visible.
+--echo ####################################################################################
+SHOW GRANTS;
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 7 Revoke PROCESS privilege from anonymous user + disconnect ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+REVOKE PROCESS ON *.* FROM ''@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 7.1 New connection (anonymous2,localhost,'',,information_schema)
+connect (anonymous2,localhost,'',,information_schema);
+--echo The anonymous user has no more the PROCESS privilege
+--echo Again only the processes of the anonymous user are visible.
+--echo ####################################################################################
+SHOW GRANTS FOR ''@'localhost';
+if ($fixed_bug_30395)
+{
+# Bug#30395 strange results after REVOKE PROCESS ON *.* FROM ...
+--replace_column 6 TIME
+SHOW processlist;
+}
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 8.1 New connection con103 (ddicttestuser1 with SUPER privilege)
+connect (con103,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo Only the processes of ddicttestuser1 user are visible.
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 9 Revoke SUPER privilege from user ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+REVOKE SUPER ON *.* FROM 'ddicttestuser1'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 9.1 New connection con104 (ddicttestuser1 without SUPER privilege)
+connect (con104,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo ddicttestuser1 has no more the SUPER privilege.
+--echo Only the processes of ddicttestuser1 are visible.
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 10 Grant SUPER privilege with grant option to user ddicttestuser1.
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 10.1 New connection con105 (ddicttestuser1 with SUPER privilege and GRANT OPTION)
+connect (con105,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo Try to grant PROCESS privilege to user ddicttestuser2 without having it.
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+--error ER_ACCESS_DENIED_ERROR
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+
+--echo ####################################################################################
+--echo 10.2 Grant SUPER and PROCESS privilege with grant option to user ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+GRANT SUPER,PROCESS ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 10.3 New connection con106 (ddicttestuser1 with SUPER,PROCESS WITH GRANT OPTION)
+connect (con106,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo Grant PROCESS privilege to user ddicttestuser2
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 10.4 New connection con200 (ddicttestuser2 with PROCESS privilege)
+connect (con200,localhost,ddicttestuser2,ddictpass,information_schema);
+--echo ddicttestuser2 has now the PROCESS privilege and sees all connections
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 11 User ddicttestuser1 revokes PROCESS privilege from user ddicttestuser2
+--echo connection ddicttestuser1;
+--echo ####################################################################################
+connection con106;
+REVOKE PROCESS ON *.* FROM 'ddicttestuser2'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 11.1 New connection con201 (ddicttestuser2)
+connect (con201,localhost,ddicttestuser2,ddictpass,information_schema);
+--echo ddicttestuser2 has no more the PROCESS privilege and can only see own connects
+--echo ####################################################################################
+SHOW GRANTS;
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+REVOKE SUPER,PROCESS,GRANT OPTION ON *.* FROM 'ddicttestuser1'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 11.3 New connection con107 (ddicttestuser1)
+connect (con107,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo ddicttestuser1 has no more the PROCESS privilege and can only see own connects
+--echo He is also unable to GRANT the PROCESS privilege to ddicttestuser2
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+--error ER_ACCESS_DENIED_ERROR
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo 12 Revoke the SELECT privilege from user ddicttestuser1
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+REVOKE SELECT ON *.* FROM 'ddicttestuser1'@'localhost';
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 12.1 New connection con108 (ddicttestuser1)
+connect (con108,localhost,ddicttestuser1,ddictpass,information_schema);
+--echo ddicttestuser1 has neither PROCESS nor SELECT privilege
+--echo Manual says: Each MySQL user has the right to access these tables, but can see
+--echo only the rows ...
+--echo Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
+--echo ####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+--replace_column 6 TIME
+SHOW processlist;
+--replace_column 6 TIME
+SELECT * FROM information_schema.processlist;
+--real_sleep 0.3
+
+--echo ####################################################################################
+--echo 12.2 Revoke only the SELECT privilege on the information_schema from ddicttestuser1.
+--echo connection default (user=root)
+--echo ####################################################################################
+connection default;
+--error ER_DBACCESS_DENIED_ERROR
+REVOKE SELECT ON information_schema.* FROM 'ddicttestuser3'@'localhost';
+--real_sleep 0.3
+
+
+--echo ####################################################################################
+--echo connection default (user=root)
+--echo Cleanup: close connections, DROP USER etc.
+--echo ####################################################################################
+connection default;
+disconnect con100;
+disconnect con101;
+disconnect con102;
+disconnect con103;
+disconnect con104;
+disconnect con105;
+disconnect con106;
+disconnect con107;
+disconnect con108;
+disconnect con200;
+disconnect con201;
+disconnect anonymous1;
+disconnect anonymous2;
+DROP USER ddicttestuser1@'localhost';
+DROP USER ddicttestuser2@'localhost';
diff --git a/mysql-test/suite/funcs_1/datadict/processlist_val.inc b/mysql-test/suite/funcs_1/datadict/processlist_val.inc
new file mode 100644
index 00000000000..da2c2950095
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/processlist_val.inc
@@ -0,0 +1,333 @@
+########### suite/funcs_1/datadict/processlist_val.inc #################
+# #
+# Testing of values within INFORMATION_SCHEMA.PROCESSLIST #
+# #
+# Ensure that the values fit to the current state of the connection #
+# and especially that they change if a connection does nothing or #
+# runs some SQL. #
+# Examples: #
+# - change the default database #
+# - send some time no SQL command to the server #
+# - send a long running query #
+# #
+# Note(mleich): #
+# 1. Please inform me if this test fails because of timing problems. #
+# I tried to avoid instabilities but the values within the column #
+# TIME are very sensible to fluctuations of the machine load. #
+# I had to unify some TIME values with "--replace_result" in cases #
+# where they are too unstable. #
+# 2. Storage engine variants of this test do not make sense. #
+# - I_S tables use the MEMORY storage engine whenever possible. #
+# - There are some I_S table which need column data types which #
+# are not supported by MEMORY. Example: LONGTEXT/BLOB #
+# MyISAM will be used for such tables. #
+# The column PROCESSLIST.INFO is of data type LONGTEXT #
+# ----> MyISAM #
+# - There is no impact of the GLOBAL(server) or SESSION default #
+# storage engine setting on the engine used for I_S tables. #
+# That means we cannot get NDB or InnoDB instead. #
+# 3. The SHOW (FULL) PROCESSLIST command are for comparison. #
+# The main test target is INFORMATION_SCHEMA.PROCESSLIST ! #
+# #
+# Creation: #
+# 2007-08-09 mleich Implement this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+########################################################################
+
+# Basic preparations
+--disable_abort_on_error
+DROP USER ddicttestuser1@'localhost';
+--enable_abort_on_error
+CREATE USER ddicttestuser1@'localhost';
+GRANT ALL ON *.* TO ddicttestuser1@'localhost';
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+--disable_warnings
+DROP TABLE IF EXISTS test.t1;
+--enable_warnings
+CREATE TABLE test.t1 (f1 BIGINT);
+
+
+# Show the definition of the PROCESSLIST table
+#--------------------------------------------------------------------------
+SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST;
+
+
+# Ensure that the values follow the changing default database and statement
+#--------------------------------------------------------------------------
+# - We have now exact one connection. -> One record
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST;
+# - Other expected values
+# - USER = 'root'
+# - HOST = 'localhost'
+# - DB = 'test'
+# - Command = 'Query'
+# - TIME = 0, I hope the testing machines are all time fast enough
+# - State IS NULL
+# - INFO must contain the corresponding SHOW/SELECT PROCESSLIST
+USE test;
+--replace_column 1 <ID>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID>
+SHOW FULL PROCESSLIST;
+#
+# Expect to see now DB = 'information_schema'
+USE information_schema;
+--replace_column 1 <ID> 6 <TIME>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID> 6 <TIME>
+SHOW FULL PROCESSLIST;
+#
+# Expect to see now INFO = 'SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST;'
+SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
+
+
+# Ensure that the values for an additional connection are correct
+#--------------------------------------------------------------------------
+SELECT ID INTO @my_proclist_id FROM INFORMATION_SCHEMA.PROCESSLIST;
+--echo
+--echo ----- establish connection ddicttestuser1 (user = ddicttestuser1) -----
+connect (ddicttestuser1,localhost,ddicttestuser1,ddictpass,information_schema);
+#
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+# - We have now a second connection.
+# - important values in second connection
+# - USER = ddicttestuser1
+# - HOST = 'localhost'
+# - DB = 'information_schema'
+# - Command = 'Sleep'
+# - TIME = 0, I hope the testing machines are all time fast enough
+# - State IS NULL
+# - INFO must be empty
+--replace_column 1 <ID>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+# Change the SQL command (affects content of INFO)
+--replace_column 1 <ID>
+SHOW FULL PROCESSLIST;
+#
+--echo # Sleep some time
+# The value of TIME must increase after some sleeps.
+# So poll till TIME changes.
+let $run= 10;
+while ($run)
+{
+ dec $run;
+ if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
+ WHERE ID = @my_proclist_id + 1 AND TIME > 0`)
+ {
+ let $run= 0;
+ }
+ --real_sleep 0.2
+}
+# Either we have now reached TIME = 1 or we fail with unexpected result.
+# Expect to see now TIME = 1
+--replace_column 1 <ID>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID>
+SHOW FULL PROCESSLIST;
+# The second connection must have an ID = my ID + 1;
+SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST
+WHERE USER = 'ddicttestuser1';
+
+
+# Ensure that the user ddicttestuser1 sees only connections with his username
+# because he has not the PROCESS privilege.
+#----------------------------------------------------------------------------
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+--replace_column 1 <ID> 6 <TIME>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID> 6 <TIME>
+SHOW FULL PROCESSLIST;
+
+
+# Ensure that the user ddicttestuser1 sees all connections with his username.
+#----------------------------------------------------------------------------
+--echo
+--echo ----- establish connection con2 (user = ddicttestuser1) ------
+connect (con2,localhost,ddicttestuser1,ddictpass,information_schema);
+--replace_column 1 <ID> 6 <TIME>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID> 6 <TIME>
+SHOW FULL PROCESSLIST;
+#
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+--echo ----- close connection con2 -----
+disconnect con2;
+
+
+# Ensure we see correct values if a connection is during work
+#----------------------------------------------------------------------------
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+# "Organise" a long running command to be observed by the root user
+--echo
+--echo
+--echo # Send a long enough running statement to the server, but do not
+--echo # wait till the result comes back. We will pull this later.
+send SELECT sleep(2.5),'Command time';
+#
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+# Sleep a bit so that we can be nearly sure that we see the SELECT of ddicttestuser1.
+# Expect to see within the processlist the other connection just during statement
+# execution.
+# - USER = ddicttestuser1
+# - HOST = 'localhost'
+# - DB = 'information_schema'
+# - Command = 'Query'
+# - TIME = 1, Attention: check with TIME = 0 is not stable
+# - State IS NULL
+# - INFO = "SELECT sleep(2.5),'Command time'"
+--echo # Sleep some time
+# The command must be at some time in work by the server.
+# So poll till INFO is no more NULL and TIME > 0.
+let $run= 10;
+while ($run)
+{
+ dec $run;
+ if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
+ WHERE INFO IS NOT NULL AND TIME > 0`)
+ {
+ let $run= 0;
+ }
+ --real_sleep 0.2
+}
+# Expect to see TIME = 1
+--replace_column 1 <ID>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID>
+SHOW FULL PROCESSLIST;
+#
+--echo # Sleep some time
+# The value of TIME must increase after some sleeps therefore
+# poll till TIME changes
+let $run= 10;
+while ($run)
+{
+ dec $run;
+ if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
+ WHERE ID = @my_proclist_id + 1 AND TIME > 1`)
+ {
+ let $run= 0;
+ }
+ --real_sleep 0.2
+}
+# Either we have now reached TIME = 2 or we fail with unexpected result.
+--replace_column 1 <ID>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID>
+SHOW FULL PROCESSLIST;
+#
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+--echo # Pull("reap") the result set from the statement executed with "send".
+reap;
+
+
+# Ensure that SHOW/SELECT processlist can handle extreme long commands
+#----------------------------------------------------------------------------
+--echo
+--echo
+--echo # Send a long (21 KB code and runtime = 2 seconds) statement to the server,
+--echo # but do not wait till the result comes back. We will pull this later.
+# Please do not change the next statement.
+# The annoying long line is intended. Many short lines would be a different test.
+send SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement";
+#
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+--echo # Sleep some time
+# The command must be at some time in work by the server.
+# So poll till INFO is no more NULL.
+let $run= 10;
+while ($run)
+{
+ dec $run;
+ if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
+ WHERE INFO IS NOT NULL`)
+ {
+ let $run= 0;
+ }
+ --real_sleep 0.2
+}
+# Expect to see that SELECT/SHOW PROCESSLIST can handle my statement monster.
+--replace_column 1 <ID> 6 <TIME>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID> 6 <TIME>
+SHOW FULL PROCESSLIST;
+# SHOW PROCESSLIST truncates INFO after 100 characters.
+--replace_column 1 <ID> 6 <TIME>
+SHOW PROCESSLIST;
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+--echo # Pull("reap") the result set from the monster statement executed with "send".
+reap;
+
+
+# Ensure that we see that a connection "hangs" when colliding with a
+# WRITE TABLE LOCK
+#----------------------------------------------------------------------------
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+LOCK TABLE test.t1 WRITE;
+#
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+--echo # Send a statement to the server, but do not wait till the result
+--echo # comes back. We will pull this later.
+send SELECT COUNT(*) FROM test.t1;
+#
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+--echo # Sleep some time
+# The command must be at some time in work by the server.
+# So poll till INFO is no more NULL.
+let $run= 10;
+while ($run)
+{
+ dec $run;
+ if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
+ WHERE INFO IS NOT NULL`)
+ {
+ let $run= 0;
+ }
+ --real_sleep 0.2
+}
+# Expect to see the state 'Locked' for the second connection because the SELECT
+# collides with the WRITE TABLE LOCK.
+--replace_column 1 <ID> 6 <TIME>
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+--replace_column 1 <ID> 6 <TIME>
+SHOW FULL PROCESSLIST;
+UNLOCK TABLES;
+#
+--echo
+--echo ----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+connection ddicttestuser1;
+--echo # Pull("reap") the result set from the statement executed with "send".
+reap;
+
+
+# Cleanup
+--echo
+--echo ----- switch to connection default (user = root) -----
+connection default;
+--echo
+--echo ----- close connection ddicttestuser1 -----
+disconnect ddicttestuser1;
+DROP USER ddicttestuser1@'localhost';
diff --git a/mysql-test/suite/funcs_1/include/ndb_tb2.inc b/mysql-test/suite/funcs_1/include/ndb_tb2.inc
index 4a59ed7bf2d..3e6efe47e18 100644
--- a/mysql-test/suite/funcs_1/include/ndb_tb2.inc
+++ b/mysql-test/suite/funcs_1/include/ndb_tb2.inc
@@ -55,7 +55,7 @@ f106 year(3) not null default 2000,
f107 year(4) not null default 2000,
f108 enum("1enum","2enum") not null default "1enum",
f109 set("1set","2set") not null default "1set"
-) engine = innodb;
+) engine = ndb;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb2.txt' into table tb2 ;
diff --git a/mysql-test/suite/funcs_1/r/a_processlist_priv_no_prot.result b/mysql-test/suite/funcs_1/r/a_processlist_priv_no_prot.result
new file mode 100644
index 00000000000..c50f7177f52
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/a_processlist_priv_no_prot.result
@@ -0,0 +1,469 @@
+USE information_schema;
+####################################################################################
+1 Prepare test.
+connection default (user=root)
+####################################################################################
+####################################################################################
+1.1 Create two user
+####################################################################################
+DROP USER ddicttestuser1@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser1'@'localhost'
+DROP USER ddicttestuser2@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser2'@'localhost'
+CREATE USER ddicttestuser1@'localhost';
+CREATE USER ddicttestuser2@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+SET PASSWORD FOR ddicttestuser2@'localhost' = PASSWORD('ddictpass');
+####################################################################################
+1.2 Establish connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+####################################################################################
+####################################################################################
+2 connection default(user=root with default privileges):
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW CREATE TABLE processlist;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SHOW processlist;
+Id User Host db Command Time State Info
+1 root localhost information_schema Query TIME NULL SHOW processlist
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+SELECT * FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+1 root localhost information_schema Query TIME preparing SELECT * FROM processlist ORDER BY id
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+1 root localhost information_schema Query TIME preparing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
+UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
+INSERT INTO processlist SELECT * FROM test.t_processlist;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE test.t_processlist;
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
+ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
+UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP VIEW test.v_processlist;
+UPDATE processlist SET user='any_user' WHERE id=1 ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM processlist WHERE id=1 ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+REVOKE ALL ON processlist FROM current_user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT INSERT,UPDATE ON processlist TO current_user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+CREATE INDEX i_processlist ON processlist (user);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE processlist;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE processlist DROP COLUMN user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE processlist ADD COLUMN (my_column INT);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+RENAME TABLE processlist TO new_processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+RENAME TABLE processlist TO files;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE new_processlist AS SELECT * FROM processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+DROP DATABASE information_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+RENAME DATABASE information_schema TO info_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+####################################################################################
+3 Switch to connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+SHOW/SELECT shows only the processes (1) of the user.
+####################################################################################
+SHOW CREATE TABLE processlist;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+2 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM processlist ORDER BY id
+SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+2 ddicttestuser1 localhost information_schema Query TIME preparing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
+CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
+UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
+INSERT INTO processlist SELECT * FROM test.t_processlist;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP TABLE test.t_processlist;
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
+ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
+UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP VIEW test.v_processlist;
+UPDATE processlist SET user='any_user' WHERE id=1 ;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DELETE FROM processlist WHERE id=1 ;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+REVOKE ALL ON processlist FROM current_user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+GRANT INSERT,UPDATE ON processlist TO current_user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+CREATE INDEX i_processlist ON processlist (user);
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP TABLE processlist;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+ALTER TABLE processlist DROP COLUMN user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+ALTER TABLE processlist ADD COLUMN (my_column INT);
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+RENAME TABLE processlist TO new_processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+RENAME TABLE processlist TO files;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+CREATE TABLE new_processlist AS SELECT * FROM processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+DROP DATABASE information_schema;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+RENAME DATABASE information_schema TO info_schema;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+####################################################################################
+4 Grant PROCESS privilege to ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT PROCESS ON *.* TO ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+####################################################################################
+4.1 Existing connection con100 (ddicttestuser1)
+The user ddicttestuser1 has the PROCESS privilege, but the connection was
+established before PROCESS was granted.
+SHOW/SELECT shows only the processes (1) of the user.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+2 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+####################################################################################
+4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+1 root localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+3 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+1 root localhost information_schema Sleep TIME NULL
+####################################################################################
+5 Grant PROCESS privilege to anonymous user.
+connection default (user=root)
+####################################################################################
+GRANT PROCESS ON *.* TO ''@'localhost';
+####################################################################################
+5.1 Establish connection (anonymous1,localhost,'',,information_schema)
+anonymous user with PROCESS privilege
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW GRANTS;
+Grants for @localhost
+GRANT PROCESS ON *.* TO ''@'localhost'
+SHOW processlist;
+Id User Host db Command Time State Info
+1 root localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+4 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+1 root localhost information_schema Sleep TIME NULL
+####################################################################################
+6 Revoke PROCESS privilege from ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+####################################################################################
+6.1 New connection con102 (ddicttestuser1 has no more PROCESS privilege)
+Again (compared to state before GRANT PROCESS) only the processes of
+ddicttestuser1 are visible.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+5 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+7 Revoke PROCESS privilege from anonymous user + disconnect ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE PROCESS ON *.* FROM ''@'localhost';
+####################################################################################
+7.1 New connection (anonymous2,localhost,'',,information_schema)
+The anonymous user has no more the PROCESS privilege
+Again only the processes of the anonymous user are visible.
+####################################################################################
+SHOW GRANTS FOR ''@'localhost';
+Grants for @localhost
+GRANT USAGE ON *.* TO ''@'localhost'
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+6 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+4 localhost information_schema Sleep TIME NULL
+####################################################################################
+8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost';
+####################################################################################
+8.1 New connection con103 (ddicttestuser1 with SUPER privilege)
+Only the processes of ddicttestuser1 user are visible.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+7 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+9 Revoke SUPER privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SUPER ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+9.1 New connection con104 (ddicttestuser1 without SUPER privilege)
+ddicttestuser1 has no more the SUPER privilege.
+Only the processes of ddicttestuser1 are visible.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+8 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+10 Grant SUPER privilege with grant option to user ddicttestuser1.
+connection default (user=root)
+####################################################################################
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+####################################################################################
+10.1 New connection con105 (ddicttestuser1 with SUPER privilege and GRANT OPTION)
+Try to grant PROCESS privilege to user ddicttestuser2 without having it.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
+####################################################################################
+10.2 Grant SUPER and PROCESS privilege with grant option to user ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT SUPER,PROCESS ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+####################################################################################
+10.3 New connection con106 (ddicttestuser1 with SUPER,PROCESS WITH GRANT OPTION)
+Grant PROCESS privilege to user ddicttestuser2
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT PROCESS, SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+####################################################################################
+10.4 New connection con200 (ddicttestuser2 with PROCESS privilege)
+ddicttestuser2 has now the PROCESS privilege and sees all connections
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
+Grants for ddicttestuser2@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+1 root localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+6 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser2 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+11 ddicttestuser2 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+6 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+1 root localhost information_schema Sleep TIME NULL
+####################################################################################
+11 User ddicttestuser1 revokes PROCESS privilege from user ddicttestuser2
+connection ddicttestuser1;
+####################################################################################
+REVOKE PROCESS ON *.* FROM 'ddicttestuser2'@'localhost';
+####################################################################################
+11.1 New connection con201 (ddicttestuser2)
+ddicttestuser2 has no more the PROCESS privilege and can only see own connects
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser2@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+11 ddicttestuser2 localhost information_schema Sleep TIME NULL
+12 ddicttestuser2 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+12 ddicttestuser2 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+11 ddicttestuser2 localhost information_schema Sleep TIME NULL
+####################################################################################
+11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SUPER,PROCESS,GRANT OPTION ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+11.3 New connection con107 (ddicttestuser1)
+ddicttestuser1 has no more the PROCESS privilege and can only see own connects
+He is also unable to GRANT the PROCESS privilege to ddicttestuser2
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+13 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+13 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+12 Revoke the SELECT privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SELECT ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+12.1 New connection con108 (ddicttestuser1)
+ddicttestuser1 has neither PROCESS nor SELECT privilege
+Manual says: Each MySQL user has the right to access these tables, but can see
+only the rows ...
+Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+13 ddicttestuser1 localhost information_schema Sleep TIME NULL
+14 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+14 ddicttestuser1 localhost information_schema Query TIME preparing SELECT * FROM information_schema.processlist
+13 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 ddicttestuser1 localhost information_schema Sleep TIME NULL
+2 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+12.2 Revoke only the SELECT privilege on the information_schema from ddicttestuser1.
+connection default (user=root)
+####################################################################################
+REVOKE SELECT ON information_schema.* FROM 'ddicttestuser3'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+####################################################################################
+connection default (user=root)
+Cleanup: close connections, DROP USER etc.
+####################################################################################
+DROP USER ddicttestuser1@'localhost';
+DROP USER ddicttestuser2@'localhost';
diff --git a/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result b/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result
new file mode 100644
index 00000000000..9a7c9805b66
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result
@@ -0,0 +1,174 @@
+DROP USER ddicttestuser1@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser1'@'localhost'
+CREATE USER ddicttestuser1@'localhost';
+GRANT ALL ON *.* TO ddicttestuser1@'localhost';
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+DROP TABLE IF EXISTS test.t1;
+CREATE TABLE test.t1 (f1 BIGINT);
+SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST;
+COUNT(*)
+1
+USE test;
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> root localhost test Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost test Query 0 NULL SHOW FULL PROCESSLIST
+USE information_schema;
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> root localhost information_schema Query <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
+INFO
+SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST
+SELECT ID INTO @my_proclist_id FROM INFORMATION_SCHEMA.PROCESSLIST;
+
+----- establish connection ddicttestuser1 (user = ddicttestuser1) -----
+
+----- switch to connection default (user = root) -----
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL
+<ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL
+<ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL
+SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST
+WHERE USER = 'ddicttestuser1';
+ID = @my_proclist_id + 1
+1
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> ddicttestuser1 localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+
+----- establish connection con2 (user = ddicttestuser1) ------
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep <TIME> NULL
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> ddicttestuser1 localhost information_schema Sleep <TIME> NULL
+<ID> ddicttestuser1 localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+
+----- switch to connection default (user = root) -----
+----- close connection con2 -----
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+
+
+# Send a long enough running statement to the server, but do not
+# wait till the result comes back. We will pull this later.
+SELECT sleep(2.5),'Command time';
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query 1 init SELECT sleep(2.5),'Command time'
+<ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query 1 init SELECT sleep(2.5),'Command time'
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query 2 init SELECT sleep(2.5),'Command time'
+<ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query 2 init SELECT sleep(2.5),'Command time'
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the statement executed with "send".
+sleep(2.5) Command time
+0 Command time
+
+
+# Send a long (21 KB code and runtime = 2 seconds) statement to the server,
+# but do not wait till the result comes back. We will pull this later.
+SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement";
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement"
+<ID> root localhost information_schema Query <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement"
+SHOW PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representativ
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the monster statement executed with "send".
+sleep(2) my_monster_statement
+0 BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END
+
+----- switch to connection default (user = root) -----
+LOCK TABLE test.t1 WRITE;
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Send a statement to the server, but do not wait till the result
+# comes back. We will pull this later.
+SELECT COUNT(*) FROM test.t1;
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> Locked SELECT COUNT(*) FROM test.t1
+<ID> root localhost information_schema Query <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> Locked SELECT COUNT(*) FROM test.t1
+UNLOCK TABLES;
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the statement executed with "send".
+COUNT(*)
+0
+
+----- switch to connection default (user = root) -----
+
+----- close connection ddicttestuser1 -----
+DROP USER ddicttestuser1@'localhost';
diff --git a/mysql-test/suite/funcs_1/r/b_processlist_priv_ps.result b/mysql-test/suite/funcs_1/r/b_processlist_priv_ps.result
new file mode 100644
index 00000000000..f7038bc37b1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/b_processlist_priv_ps.result
@@ -0,0 +1,469 @@
+USE information_schema;
+####################################################################################
+1 Prepare test.
+connection default (user=root)
+####################################################################################
+####################################################################################
+1.1 Create two user
+####################################################################################
+DROP USER ddicttestuser1@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser1'@'localhost'
+DROP USER ddicttestuser2@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser2'@'localhost'
+CREATE USER ddicttestuser1@'localhost';
+CREATE USER ddicttestuser2@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+SET PASSWORD FOR ddicttestuser2@'localhost' = PASSWORD('ddictpass');
+####################################################################################
+1.2 Establish connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+####################################################################################
+####################################################################################
+2 connection default(user=root with default privileges):
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW CREATE TABLE processlist;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SHOW processlist;
+Id User Host db Command Time State Info
+3 root localhost information_schema Query TIME NULL SHOW processlist
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+SELECT * FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+3 root localhost information_schema Execute TIME preparing SELECT * FROM processlist ORDER BY id
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+3 root localhost information_schema Execute TIME preparing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
+UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
+INSERT INTO processlist SELECT * FROM test.t_processlist;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE test.t_processlist;
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
+ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
+UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP VIEW test.v_processlist;
+UPDATE processlist SET user='any_user' WHERE id=1 ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DELETE FROM processlist WHERE id=1 ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+REVOKE ALL ON processlist FROM current_user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+GRANT INSERT,UPDATE ON processlist TO current_user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+SHOW GRANTS;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
+CREATE INDEX i_processlist ON processlist (user);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+DROP TABLE processlist;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE processlist DROP COLUMN user;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+ALTER TABLE processlist ADD COLUMN (my_column INT);
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+RENAME TABLE processlist TO new_processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+RENAME TABLE processlist TO files;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+CREATE TABLE new_processlist AS SELECT * FROM processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+DROP DATABASE information_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+RENAME DATABASE information_schema TO info_schema;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+####################################################################################
+3 Switch to connection con100 (user=ddicttestuser1 with no PROCESS privilege):
+SHOW/SELECT shows only the processes (1) of the user.
+####################################################################################
+SHOW CREATE TABLE processlist;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+4 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM processlist ORDER BY id
+SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id;
+ID USER HOST DB COMMAND TIME STATE INFO
+4 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM processlist ORDER BY id
+CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
+UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
+INSERT INTO processlist SELECT * FROM test.t_processlist;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP TABLE test.t_processlist;
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist WITH CHECK OPTION;
+ERROR HY000: CHECK OPTION on non-updatable view 'test.v_processlist'
+CREATE VIEW test.v_processlist (ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO) AS SELECT * FROM processlist;
+UPDATE test.v_processlist SET TIME=NOW() WHERE id = 1;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP VIEW test.v_processlist;
+UPDATE processlist SET user='any_user' WHERE id=1 ;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DELETE FROM processlist WHERE id=1 ;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+REVOKE ALL ON processlist FROM current_user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+GRANT INSERT,UPDATE ON processlist TO current_user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+CREATE INDEX i_processlist ON processlist (user);
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+DROP TABLE processlist;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+ALTER TABLE processlist DROP COLUMN user;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+ALTER TABLE processlist ADD COLUMN (my_column INT);
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+RENAME TABLE processlist TO new_processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+RENAME TABLE processlist TO files;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+CREATE TABLE new_processlist AS SELECT * FROM processlist;
+ERROR 42S02: Unknown table 'new_processlist' in information_schema
+DROP DATABASE information_schema;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+RENAME DATABASE information_schema TO info_schema;
+ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
+####################################################################################
+4 Grant PROCESS privilege to ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT PROCESS ON *.* TO ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+####################################################################################
+4.1 Existing connection con100 (ddicttestuser1)
+The user ddicttestuser1 has the PROCESS privilege, but the connection was
+established before PROCESS was granted.
+SHOW/SELECT shows only the processes (1) of the user.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+4 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+####################################################################################
+4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+3 root localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+5 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 root localhost information_schema Sleep TIME NULL
+####################################################################################
+5 Grant PROCESS privilege to anonymous user.
+connection default (user=root)
+####################################################################################
+GRANT PROCESS ON *.* TO ''@'localhost';
+####################################################################################
+5.1 Establish connection (anonymous1,localhost,'',,information_schema)
+anonymous user with PROCESS privilege
+SHOW/SELECT shows all processes/threads.
+####################################################################################
+SHOW GRANTS;
+Grants for @localhost
+GRANT PROCESS ON *.* TO ''@'localhost'
+SHOW processlist;
+Id User Host db Command Time State Info
+3 root localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+6 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+6 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 root localhost information_schema Sleep TIME NULL
+####################################################################################
+6 Revoke PROCESS privilege from ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
+####################################################################################
+6.1 New connection con102 (ddicttestuser1 has no more PROCESS privilege)
+Again (compared to state before GRANT PROCESS) only the processes of
+ddicttestuser1 are visible.
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+7 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+7 Revoke PROCESS privilege from anonymous user + disconnect ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE PROCESS ON *.* FROM ''@'localhost';
+####################################################################################
+7.1 New connection (anonymous2,localhost,'',,information_schema)
+The anonymous user has no more the PROCESS privilege
+Again only the processes of the anonymous user are visible.
+####################################################################################
+SHOW GRANTS FOR ''@'localhost';
+Grants for @localhost
+GRANT USAGE ON *.* TO ''@'localhost'
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+8 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+6 localhost information_schema Sleep TIME NULL
+####################################################################################
+8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost';
+####################################################################################
+8.1 New connection con103 (ddicttestuser1 with SUPER privilege)
+Only the processes of ddicttestuser1 user are visible.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+9 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+9 Revoke SUPER privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SUPER ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+9.1 New connection con104 (ddicttestuser1 without SUPER privilege)
+ddicttestuser1 has no more the SUPER privilege.
+Only the processes of ddicttestuser1 are visible.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+10 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+10 Grant SUPER privilege with grant option to user ddicttestuser1.
+connection default (user=root)
+####################################################################################
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+####################################################################################
+10.1 New connection con105 (ddicttestuser1 with SUPER privilege and GRANT OPTION)
+Try to grant PROCESS privilege to user ddicttestuser2 without having it.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
+####################################################################################
+10.2 Grant SUPER and PROCESS privilege with grant option to user ddicttestuser1
+connection default (user=root)
+####################################################################################
+GRANT SUPER,PROCESS ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
+####################################################################################
+10.3 New connection con106 (ddicttestuser1 with SUPER,PROCESS WITH GRANT OPTION)
+Grant PROCESS privilege to user ddicttestuser2
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT PROCESS, SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+####################################################################################
+10.4 New connection con200 (ddicttestuser2 with PROCESS privilege)
+ddicttestuser2 has now the PROCESS privilege and sees all connections
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
+Grants for ddicttestuser2@localhost
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+3 root localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+6 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+13 ddicttestuser2 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+13 ddicttestuser2 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+8 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+6 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+3 root localhost information_schema Sleep TIME NULL
+####################################################################################
+11 User ddicttestuser1 revokes PROCESS privilege from user ddicttestuser2
+connection ddicttestuser1;
+####################################################################################
+REVOKE PROCESS ON *.* FROM 'ddicttestuser2'@'localhost';
+####################################################################################
+11.1 New connection con201 (ddicttestuser2)
+ddicttestuser2 has no more the PROCESS privilege and can only see own connects
+####################################################################################
+SHOW GRANTS;
+Grants for ddicttestuser2@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+13 ddicttestuser2 localhost information_schema Sleep TIME NULL
+14 ddicttestuser2 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+14 ddicttestuser2 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+13 ddicttestuser2 localhost information_schema Sleep TIME NULL
+####################################################################################
+11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SUPER,PROCESS,GRANT OPTION ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+11.3 New connection con107 (ddicttestuser1)
+ddicttestuser1 has no more the PROCESS privilege and can only see own connects
+He is also unable to GRANT the PROCESS privilege to ddicttestuser2
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
+ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+15 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+15 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+12 Revoke the SELECT privilege from user ddicttestuser1
+connection default (user=root)
+####################################################################################
+REVOKE SELECT ON *.* FROM 'ddicttestuser1'@'localhost';
+####################################################################################
+12.1 New connection con108 (ddicttestuser1)
+ddicttestuser1 has neither PROCESS nor SELECT privilege
+Manual says: Each MySQL user has the right to access these tables, but can see
+only the rows ...
+Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
+####################################################################################
+SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
+Grants for ddicttestuser1@localhost
+GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
+SHOW processlist;
+Id User Host db Command Time State Info
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+15 ddicttestuser1 localhost information_schema Sleep TIME NULL
+16 ddicttestuser1 localhost information_schema Query TIME NULL SHOW processlist
+SELECT * FROM information_schema.processlist;
+ID USER HOST DB COMMAND TIME STATE INFO
+16 ddicttestuser1 localhost information_schema Execute TIME preparing SELECT * FROM information_schema.processlist
+15 ddicttestuser1 localhost information_schema Sleep TIME NULL
+12 ddicttestuser1 localhost information_schema Sleep TIME NULL
+11 ddicttestuser1 localhost information_schema Sleep TIME NULL
+10 ddicttestuser1 localhost information_schema Sleep TIME NULL
+9 ddicttestuser1 localhost information_schema Sleep TIME NULL
+7 ddicttestuser1 localhost information_schema Sleep TIME NULL
+5 ddicttestuser1 localhost information_schema Sleep TIME NULL
+4 ddicttestuser1 localhost information_schema Sleep TIME NULL
+####################################################################################
+12.2 Revoke only the SELECT privilege on the information_schema from ddicttestuser1.
+connection default (user=root)
+####################################################################################
+REVOKE SELECT ON information_schema.* FROM 'ddicttestuser3'@'localhost';
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+####################################################################################
+connection default (user=root)
+Cleanup: close connections, DROP USER etc.
+####################################################################################
+DROP USER ddicttestuser1@'localhost';
+DROP USER ddicttestuser2@'localhost';
diff --git a/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result b/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result
new file mode 100644
index 00000000000..db0a7750077
--- /dev/null
+++ b/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result
@@ -0,0 +1,174 @@
+DROP USER ddicttestuser1@'localhost';
+ERROR HY000: Operation DROP USER failed for 'ddicttestuser1'@'localhost'
+CREATE USER ddicttestuser1@'localhost';
+GRANT ALL ON *.* TO ddicttestuser1@'localhost';
+REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost';
+SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
+DROP TABLE IF EXISTS test.t1;
+CREATE TABLE test.t1 (f1 BIGINT);
+SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST;
+Table Create Table
+PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
+ `ID` bigint(4) NOT NULL DEFAULT '0',
+ `USER` varchar(16) NOT NULL DEFAULT '',
+ `HOST` varchar(64) NOT NULL DEFAULT '',
+ `DB` varchar(64) DEFAULT NULL,
+ `COMMAND` varchar(16) NOT NULL DEFAULT '',
+ `TIME` bigint(7) NOT NULL DEFAULT '0',
+ `STATE` varchar(64) DEFAULT NULL,
+ `INFO` longtext
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST;
+COUNT(*)
+1
+USE test;
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> root localhost test Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost test Query 0 NULL SHOW FULL PROCESSLIST
+USE information_schema;
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> root localhost information_schema Execute <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
+INFO
+SELECT INFO FROM INFORMATION_SCHEMA.PROCESSLIST
+SELECT ID INTO @my_proclist_id FROM INFORMATION_SCHEMA.PROCESSLIST;
+
+----- establish connection ddicttestuser1 (user = ddicttestuser1) -----
+
+----- switch to connection default (user = root) -----
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL
+<ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL
+<ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL
+SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST
+WHERE USER = 'ddicttestuser1';
+ID = @my_proclist_id + 1
+1
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Execute <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> ddicttestuser1 localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+
+----- establish connection con2 (user = ddicttestuser1) ------
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Execute <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Sleep <TIME> NULL
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> ddicttestuser1 localhost information_schema Sleep <TIME> NULL
+<ID> ddicttestuser1 localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+
+----- switch to connection default (user = root) -----
+----- close connection con2 -----
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+
+
+# Send a long enough running statement to the server, but do not
+# wait till the result comes back. We will pull this later.
+SELECT sleep(2.5),'Command time';
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query 1 init SELECT sleep(2.5),'Command time'
+<ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query 1 init SELECT sleep(2.5),'Command time'
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query 2 init SELECT sleep(2.5),'Command time'
+<ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query 2 init SELECT sleep(2.5),'Command time'
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the statement executed with "send".
+sleep(2.5) Command time
+0 Command time
+
+
+# Send a long (21 KB code and runtime = 2 seconds) statement to the server,
+# but do not wait till the result comes back. We will pull this later.
+SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement";
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement"
+<ID> root localhost information_schema Execute <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END' AS "my_monster_statement"
+SHOW PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> init SELECT sleep(2),'BEGIN this is the representative of a very long statement.this is the representativ
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the monster statement executed with "send".
+sleep(2) my_monster_statement
+0 BEGIN this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.this is the representative of a very long statement.END
+
+----- switch to connection default (user = root) -----
+LOCK TABLE test.t1 WRITE;
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Send a statement to the server, but do not wait till the result
+# comes back. We will pull this later.
+SELECT COUNT(*) FROM test.t1;
+
+----- switch to connection default (user = root) -----
+# Sleep some time
+SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
+ID USER HOST DB COMMAND TIME STATE INFO
+<ID> ddicttestuser1 localhost information_schema Query <TIME> Locked SELECT COUNT(*) FROM test.t1
+<ID> root localhost information_schema Execute <TIME> preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
+SHOW FULL PROCESSLIST;
+Id User Host db Command Time State Info
+<ID> root localhost information_schema Query <TIME> NULL SHOW FULL PROCESSLIST
+<ID> ddicttestuser1 localhost information_schema Query <TIME> Locked SELECT COUNT(*) FROM test.t1
+UNLOCK TABLES;
+
+----- switch to connection ddicttestuser1 (user = ddicttestuser1) -----
+# Pull("reap") the result set from the statement executed with "send".
+COUNT(*)
+0
+
+----- switch to connection default (user = root) -----
+
+----- close connection ddicttestuser1 -----
+DROP USER ddicttestuser1@'localhost';
diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result
index 13df98d4b08..48a97f80b14 100644
--- a/mysql-test/suite/funcs_1/r/innodb_views.result
+++ b/mysql-test/suite/funcs_1/r/innodb_views.result
@@ -184,47 +184,47 @@ Insert into t1 values (500,9866);
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 where f59=250;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60,f61 limit 0,10;
f59 f60 f61
250 87895654 NULL
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
1 1 0000000001
2 2 0000000002
3 3 0000000003
4 4 0000000004
+4 74 NULL
5 5 0000000005
6 6 0000000006
7 7 0000000007
8 8 0000000008
9 9 0000000009
-10 10 0000000010
CREATE or REPLACE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
5 5 0000000005
6 6 0000000006
7 7 0000000007
CREATE or REPLACE VIEW v1 AS select distinct f59
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
5
6
7
ALTER VIEW v1 AS select f59
FROM test.tb2 limit 6,2;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
7
8
CREATE or REPLACE VIEW v1 AS select f59
from tb2 order by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -266,7 +266,7 @@ f59
660
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -280,7 +280,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 asc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -294,21 +294,21 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 desc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-569300
-76710
-9112
-7876
-3410
-3330
-2760
-2550
-987
-660
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
union (select f59 from t1) limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -322,7 +322,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION DISTINCT(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -336,103 +336,103 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION ALL(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
3
4
+4
5
6
7
8
9
-10
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH LOCAL CHECK OPTION ;
-select * FROM v1 limit 0,50;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH CASCADED CHECK OPTION ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
-10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
FROM test.tb2 WITH CASCADED CHECK OPTION;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
CREATE or REPLACE VIEW v1 AS select f59, f60
from test.tb2 where f59=3330 ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60 limit 0,10;
f59 f60
3330 764376
DROP VIEW v1 ;
@@ -876,11 +876,11 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SELECT * FROM test.v1;
f1
1
-CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2;
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` limit 2 latin1 latin1_swedish_ci
-SELECT * FROM test.v1 ;
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` order by `tb2`.`f59` limit 2 latin1 latin1_swedish_ci
+SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
@@ -888,48 +888,48 @@ CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 latin1 latin1_swedish_ci
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59;
F59
-76710
-2760
-569300
-660
-250
-340
-3410
-2550
-3330
-441
-24
-323
-34
4
15
+17
+19
22
-394
+24
+27
+29
+34
94
-195
-292
-987
-7876
-321
-9112
-500
-500
-500
+107
107
109
+109
+195
207
209
-27
-29
-17
-19
-107
-109
-299
242
+250
+292
+299
+321
+323
+340
+394
424
+441
+500
+500
+500
+660
+987
+2550
+2760
+3330
+3410
+7876
+9112
+76710
+569300
Drop table test.t1 ;
Drop view test.v1 ;
@@ -1081,7 +1081,7 @@ Testcase 3.3.1.21
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS v1;
CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59, F60 desc;
F59 F60
1 1
2 2
@@ -1190,7 +1190,7 @@ DROP VIEW IF EXISTS test.v1;
Drop VIEW IF EXISTS test.v1_1 ;
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Create view test.v1_1 AS Select F59 from test.v1 ;
-Select * from test.v1_1 limit 20 ;
+Select * from test.v1_1 order by F59 limit 20 ;
F59
1
2
@@ -1204,58 +1204,58 @@ create database test2 ;
Create view test2.v2 AS Select * from test.tb2 limit 50,50;
use test2 ;
Create view v1 AS Select * from test.tb2 limit 50 ;
-Select * from v1 ;
+Select * from v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Select * from test2.v2 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
Drop view if exists test2.v1 ;
@@ -1318,18 +1318,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view if exists test.v1_firstview ;
Drop view if exists test.v1_secondview ;
Drop view if exists test.v1 ;
@@ -1347,18 +1347,18 @@ CREATE VIEW v1
AS SELECT test.v1_firstview.F59, test.v1_firstview.F60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view v1 ;
Drop view test.v1_firstview ;
Drop view test.v1_secondview ;
@@ -1373,18 +1373,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.tb2
ON test.v1_firstview.f59 = test.tb2.f59;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view test.v1 ;
Drop view test.v1_firstview;
@@ -1397,18 +1397,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ;
CREATE VIEW v1
AS SELECT v1_firstview.f59, v1_firstview.f60
FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop database test2 ;
Testcase 3.3.1.37
@@ -1420,18 +1420,18 @@ Drop view if exists test.v1_1 ;
Drop view if exists test.v1_1 ;
Drop view if exists test.v1_main ;
Create view test.v1 as Select f59, f60 FROM test.tb2;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
Create table t1(f59 int, f60 int);
Insert into t1 values (90,507) ;
Create view v1_1 as Select f59,f60 from t1 ;
@@ -1441,18 +1441,18 @@ f59 f60
Create view v1_main
as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1
ON test.tb2.f59 = test.v1.f59;
-Select * from v1_main limit 0,10;
+Select * from v1_main order by f59 limit 0,10;
f59
1
2
3
4
4
+4
+4
5
6
7
-8
-9
Drop table t1;
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1738,7 +1738,7 @@ Drop view if exists test.v1_main;
Drop view if exists test1.v1_1 ;
Drop database if exists test3 ;
Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ;
-Select * from test.v1 ;
+Select * from test.v1 order by f59,f60;
f59 f60
1 1
2 2
@@ -1750,16 +1750,16 @@ f59 f60
8 8
9 9
10 10
-76710 226546
-2760 985654
-569300 9114376
-660 876546
250 87895654
340 9984376
-3410 996546
+441 16546
+660 876546
2550 775654
+2760 985654
3330 764376
-441 16546
+3410 996546
+76710 226546
+569300 9114376
Create table test1.t1 (f59 int,f60 int) ;
Insert into test1.t1 values (199,507) ;
Create view test1.v1_1 as Select f59,f60 from test1.t1 ;
@@ -1792,7 +1792,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1
AS Select f59 from (Select * FROM tb2 limit 20) tx ;
ERROR HY000: View's SELECT contains a subquery in the FROM clause
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
ERROR 42S02: Table 'test.v1' doesn't exist
Drop view if exists test.v1 ;
@@ -1873,7 +1873,7 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04;
UPDATE test.v1 SET f59 = 30 where F59 = 04 ;
affected rows: 2
info: Rows matched: 2 Changed: 2 Warnings: 0
-SELECT * FROM test.v1 where f59 = 30 ;
+SELECT * FROM test.v1 where f59 = 30 order by f59;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
SELECT * FROM test.tb2 where f59 = 30 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
@@ -1886,7 +1886,7 @@ SELECT * FROM tb2 where f59 = 100 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
drop view if exists test.v1 ;
Drop TABLE IF EXISTS test.t1 ;
@@ -1962,7 +1962,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60
FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
UPDATE test.v1 SET f59 = 198 where f59=195 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
195 87
drop view if exists test.v1 ;
@@ -1976,7 +1976,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ;
CREATE VIEW test.v2 as SELECT * FROM test.v1 ;
UPDATE test.v1 SET F59 = 919 where f59 = 0987 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
987 41
UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
@@ -9671,115 +9671,115 @@ Testcase 3.3.1.50 - 3.3.1.53
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS test.v1;
CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by F59, F61 ;
F59 F61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
-250 NULL
-340 NULL
-3410 NULL
-2550 NULL
-3330 NULL
-441 NULL
-24 NULL
-323 NULL
-34 NULL
-100 NULL
15 NULL
+17 0000000016
+19 0000000014
22 NULL
-394 NULL
+24 NULL
+27 0000000026
+29 0000000024
+34 NULL
94 NULL
-195 NULL
-292 NULL
-987 NULL
-7876 NULL
-321 0000000765
-9112 0000008771
-500 0000000900
-500 0000000900
-500 0000000900
+100 NULL
+100 0000000004
107 0000000106
+107 0000000106
+109 0000000104
109 0000000104
+195 NULL
207 0000000206
209 0000000204
-27 0000000026
-29 0000000024
-17 0000000016
-19 0000000014
-107 0000000106
-109 0000000104
-299 NULL
242 NULL
+250 NULL
+292 NULL
+299 NULL
+321 0000000765
+323 NULL
+340 NULL
+394 NULL
424 NULL
+441 NULL
+500 0000000900
+500 0000000900
+500 0000000900
+660 NULL
+987 NULL
+2550 NULL
+2760 NULL
+3330 NULL
+3410 NULL
+7876 NULL
+9112 0000008771
+76710 NULL
+569300 NULL
drop view test.v1 ;
-CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61 limit 20 ;
+SELECT * FROM test.v1 order by f59,f60,f61 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1 limit 50;
+SELECT * FROM test.v1 order by f59,f61 desc limit 50;
F59 f61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
+100 0000000004
250 NULL
340 NULL
-3410 NULL
+441 NULL
+660 NULL
2550 NULL
+2760 NULL
3330 NULL
-441 NULL
+3410 NULL
+76710 NULL
+569300 NULL
drop view test.v1 ;
Testcase 3.3.1.54
@@ -9798,7 +9798,7 @@ Insert into t2 values (2,2000) ;
Insert into t2 values (31,97) ;
Create view test.v1 as select t1.f59, t1.f60
from t1,t2 where t1.f59=t2.f59 ;
-Select * from test.v1 limit 50 ;
+Select * from test.v1 order by f59 limit 50 ;
f59 f60
1 10
2 20
@@ -9864,7 +9864,7 @@ create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59 ;
-select * from test.v1;
+select * from test.v1 order by t1_f59 ;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
@@ -9877,7 +9877,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9903,7 +9903,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9929,7 +9929,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select f59, f60, f61, a, b
FROM t2 natural join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
Select f59, f60, f61, a, b
@@ -9940,11 +9940,11 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+NULL 4 NULL single NULL 4
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
-NULL 4 NULL single NULL 4
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
@@ -9955,7 +9955,7 @@ NULL 4 NULL single NULL 4
Create or replace view test.v1 as
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
3 single-f3 6 NULL 3
@@ -9970,7 +9970,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
1 NULL single NULL 3 NULL
2 2 double double 6 6
@@ -9985,11 +9985,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select f59, f60, a, b
FROM t2 natural right outer join t1;
-Select * from v1;
+Select * from v1 order by f59 desc;
f59 f60 a b
-1 single 1 NULL
-2 double 2 2
3 single-f3 3 NULL
+2 double 2 2
+1 single 1 NULL
Select f59, f60, a, b
FROM t2 natural right outer join t1;
f59 f60 a b
@@ -10010,18 +10010,18 @@ Insert into t1 values (107,501,601) ;
Insert into t1 values (901,801,401) ;
Create or replace view test.v1 as
Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
1
2
3
-100
5
6
7
8
9
10
+15
Drop view if exists test.v1 ;
Drop table if exists t1 ;
Drop view if exists v1;
@@ -10031,7 +10031,7 @@ Insert into t1 values (207,201,201) ;
Insert into t1 values (201,201,201) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
207
Drop view if exists test.v1 ;
@@ -10043,7 +10043,7 @@ Insert into t1 values (27,21,21) ;
Insert into t1 values (21,21,21) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
27
Drop view test.v1 ;
@@ -10058,18 +10058,18 @@ Insert into t1 values (17,51,61) ;
Insert into t1 values (91,81,41) ;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union ALL (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union Distinct (Select f59 from t1 where f60=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Drop view test.v1 ;
@@ -10081,7 +10081,7 @@ insert into t1 values (107,501,601);
insert into t1 values (901,801,401);
create or replace view test.v1 as
select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59;
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10089,7 +10089,7 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union all
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10098,14 +10098,14 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union distinct
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
drop view if exists test.v1 ;
@@ -10116,13 +10116,13 @@ Testcase 3.3.1.64
Drop view if exists test.v1 ;
CREATE VIEW test.v1 AS SELECT F59
FROM test.tb2 where test.tb2.F59 = 109;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
F59
109
109
ALTER VIEW test.v1 AS SELECT *
FROM test.tb2 WHERE test.tb2.f59 = 242 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Drop view test.v1 ;
@@ -10269,15 +10269,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi
EXPLAIN SELECT * FROM test3.v32;
ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
-FIXME - Setting join_limit to 30 - hangs for higher values
+FIXME - Setting join_limit to 28 - hangs for higher values
----------------------------------------------------------
-SET @join_limit = 30;
+SET @join_limit = 28;
SET @max_level = @join_limit - 1;
DROP DATABASE IF EXISTS test3;
DROP TABLE IF EXISTS test1.t1;
DROP TABLE IF EXISTS test2.t1;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10384,15 +10382,11 @@ CREATE OR REPLACE VIEW test1.v26 AS SELECT f1, f2
FROM test3.t1 tab1 NATURAL JOIN test1.v25 tab2;
CREATE OR REPLACE VIEW test1.v27 AS SELECT f1, f2
FROM test1.t1 tab1 NATURAL JOIN test1.v26 tab2;
-CREATE OR REPLACE VIEW test1.v28 AS SELECT f1, f2
-FROM test2.t1 tab1 NATURAL JOIN test1.v27 tab2;
-CREATE OR REPLACE VIEW test1.v29 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v28 tab2;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
View Create View character_set_client collation_connection
-v29 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v29` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v28` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
+v27 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v27` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test1`.`t1` `tab1` join `test1`.`v26` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
f1 f2
5 five
@@ -10401,14 +10395,14 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-CREATE VIEW test1.v30 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v29 tab2;
-SHOW CREATE VIEW test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
+CREATE VIEW test1.v28 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v27 tab2;
+SHOW CREATE VIEW test1.v28;
View Create View character_set_client collation_connection
-v30 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v30` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v29` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
+v28 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v28` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v27` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
f1 f2
5 five
@@ -10417,33 +10411,31 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
-DROP VIEW IF EXISTS test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
+DROP VIEW IF EXISTS test1.v28;
CREATE OR REPLACE VIEW test1.v0 AS
SELECT f1 as f2, f2 as f1 FROM test2.t1;
CREATE OR REPLACE VIEW test2.v0 AS
SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10514,7 +10506,7 @@ info: Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb2 where f59 = 8 and f60 = 105;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ;
f59 f60
8 105
Drop view test.v1 ;
@@ -10533,7 +10525,7 @@ f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ;
f59 f60
891 105
891 105
@@ -10550,7 +10542,7 @@ DELETE FROM test.v1 where f59 = 789 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 789 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 789;
+SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ;
f59 f60
Drop view test.v1 ;
@@ -10563,7 +10555,7 @@ DELETE FROM test.v1 where f59 = 711 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 711 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 711;
+SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ;
f59 f60
Drop view test.v1 ;
diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result
index 1e48d273d00..4bc0c4a3fa4 100644
--- a/mysql-test/suite/funcs_1/r/memory_views.result
+++ b/mysql-test/suite/funcs_1/r/memory_views.result
@@ -188,47 +188,47 @@ Insert into t1 values (500,9866);
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 where f59=250;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60,f61 limit 0,10;
f59 f60 f61
250 87895654 NULL
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
1 1 0000000001
2 2 0000000002
3 3 0000000003
4 4 0000000004
+4 74 NULL
5 5 0000000005
6 6 0000000006
7 7 0000000007
8 8 0000000008
9 9 0000000009
-10 10 0000000010
CREATE or REPLACE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
5 5 0000000005
6 6 0000000006
7 7 0000000007
CREATE or REPLACE VIEW v1 AS select distinct f59
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
5
6
7
ALTER VIEW v1 AS select f59
FROM test.tb2 limit 6,2;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
7
8
CREATE or REPLACE VIEW v1 AS select f59
from tb2 order by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -270,7 +270,7 @@ f59
660
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -284,7 +284,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 asc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -298,21 +298,21 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 desc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-569300
-76710
-9112
-7876
-3410
-3330
-2760
-2550
-987
-660
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
union (select f59 from t1) limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -326,7 +326,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION DISTINCT(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -340,103 +340,103 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION ALL(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
3
4
+4
5
6
7
8
9
-10
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH LOCAL CHECK OPTION ;
-select * FROM v1 limit 0,50;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH CASCADED CHECK OPTION ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
-10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
FROM test.tb2 WITH CASCADED CHECK OPTION;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
CREATE or REPLACE VIEW v1 AS select f59, f60
from test.tb2 where f59=3330 ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60 limit 0,10;
f59 f60
3330 764376
DROP VIEW v1 ;
@@ -880,11 +880,11 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SELECT * FROM test.v1;
f1
1
-CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2;
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` limit 2 latin1 latin1_swedish_ci
-SELECT * FROM test.v1 ;
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` order by `tb2`.`f59` limit 2 latin1 latin1_swedish_ci
+SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
@@ -892,48 +892,48 @@ CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 latin1 latin1_swedish_ci
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59;
F59
-76710
-2760
-569300
-660
-250
-340
-3410
-2550
-3330
-441
-24
-323
-34
4
15
+17
+19
22
-394
+24
+27
+29
+34
94
-195
-292
-987
-7876
-321
-9112
-500
-500
-500
+107
107
109
+109
+195
207
209
-27
-29
-17
-19
-107
-109
-299
242
+250
+292
+299
+321
+323
+340
+394
424
+441
+500
+500
+500
+660
+987
+2550
+2760
+3330
+3410
+7876
+9112
+76710
+569300
Drop table test.t1 ;
Drop view test.v1 ;
@@ -1085,7 +1085,7 @@ Testcase 3.3.1.21
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS v1;
CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59, F60 desc;
F59 F60
1 1
2 2
@@ -1194,7 +1194,7 @@ DROP VIEW IF EXISTS test.v1;
Drop VIEW IF EXISTS test.v1_1 ;
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Create view test.v1_1 AS Select F59 from test.v1 ;
-Select * from test.v1_1 limit 20 ;
+Select * from test.v1_1 order by F59 limit 20 ;
F59
1
2
@@ -1208,58 +1208,58 @@ create database test2 ;
Create view test2.v2 AS Select * from test.tb2 limit 50,50;
use test2 ;
Create view v1 AS Select * from test.tb2 limit 50 ;
-Select * from v1 ;
+Select * from v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Select * from test2.v2 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
Drop view if exists test2.v1 ;
@@ -1322,18 +1322,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view if exists test.v1_firstview ;
Drop view if exists test.v1_secondview ;
Drop view if exists test.v1 ;
@@ -1351,18 +1351,18 @@ CREATE VIEW v1
AS SELECT test.v1_firstview.F59, test.v1_firstview.F60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view v1 ;
Drop view test.v1_firstview ;
Drop view test.v1_secondview ;
@@ -1377,18 +1377,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.tb2
ON test.v1_firstview.f59 = test.tb2.f59;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view test.v1 ;
Drop view test.v1_firstview;
@@ -1401,18 +1401,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ;
CREATE VIEW v1
AS SELECT v1_firstview.f59, v1_firstview.f60
FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop database test2 ;
Testcase 3.3.1.37
@@ -1424,18 +1424,18 @@ Drop view if exists test.v1_1 ;
Drop view if exists test.v1_1 ;
Drop view if exists test.v1_main ;
Create view test.v1 as Select f59, f60 FROM test.tb2;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
Create table t1(f59 int, f60 int);
Insert into t1 values (90,507) ;
Create view v1_1 as Select f59,f60 from t1 ;
@@ -1445,18 +1445,18 @@ f59 f60
Create view v1_main
as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1
ON test.tb2.f59 = test.v1.f59;
-Select * from v1_main limit 0,10;
+Select * from v1_main order by f59 limit 0,10;
f59
1
2
3
4
4
+4
+4
5
6
7
-8
-9
Drop table t1;
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1742,7 +1742,7 @@ Drop view if exists test.v1_main;
Drop view if exists test1.v1_1 ;
Drop database if exists test3 ;
Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ;
-Select * from test.v1 ;
+Select * from test.v1 order by f59,f60;
f59 f60
1 1
2 2
@@ -1754,16 +1754,16 @@ f59 f60
8 8
9 9
10 10
-76710 226546
-2760 985654
-569300 9114376
-660 876546
250 87895654
340 9984376
-3410 996546
+441 16546
+660 876546
2550 775654
+2760 985654
3330 764376
-441 16546
+3410 996546
+76710 226546
+569300 9114376
Create table test1.t1 (f59 int,f60 int) ;
Insert into test1.t1 values (199,507) ;
Create view test1.v1_1 as Select f59,f60 from test1.t1 ;
@@ -1796,7 +1796,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1
AS Select f59 from (Select * FROM tb2 limit 20) tx ;
ERROR HY000: View's SELECT contains a subquery in the FROM clause
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
ERROR 42S02: Table 'test.v1' doesn't exist
Drop view if exists test.v1 ;
@@ -1877,7 +1877,7 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04;
UPDATE test.v1 SET f59 = 30 where F59 = 04 ;
affected rows: 2
info: Rows matched: 2 Changed: 2 Warnings: 0
-SELECT * FROM test.v1 where f59 = 30 ;
+SELECT * FROM test.v1 where f59 = 30 order by f59;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
SELECT * FROM test.tb2 where f59 = 30 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
@@ -1890,7 +1890,7 @@ SELECT * FROM tb2 where f59 = 100 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
drop view if exists test.v1 ;
Drop TABLE IF EXISTS test.t1 ;
@@ -1967,7 +1967,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60
FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
UPDATE test.v1 SET f59 = 198 where f59=195 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
195 87
drop view if exists test.v1 ;
@@ -1981,7 +1981,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ;
CREATE VIEW test.v2 as SELECT * FROM test.v1 ;
UPDATE test.v1 SET F59 = 919 where f59 = 0987 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
987 41
UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
@@ -9676,115 +9676,115 @@ Testcase 3.3.1.50 - 3.3.1.53
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS test.v1;
CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by F59, F61 ;
F59 F61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
-250 NULL
-340 NULL
-3410 NULL
-2550 NULL
-3330 NULL
-441 NULL
-24 NULL
-323 NULL
-34 NULL
-100 NULL
15 NULL
+17 0000000016
+19 0000000014
22 NULL
-394 NULL
+24 NULL
+27 0000000026
+29 0000000024
+34 NULL
94 NULL
-195 NULL
-292 NULL
-987 NULL
-7876 NULL
-321 0000000765
-9112 0000008771
-500 0000000900
-500 0000000900
-500 0000000900
+100 NULL
+100 0000000004
107 0000000106
+107 0000000106
+109 0000000104
109 0000000104
+195 NULL
207 0000000206
209 0000000204
-27 0000000026
-29 0000000024
-17 0000000016
-19 0000000014
-107 0000000106
-109 0000000104
-299 NULL
242 NULL
+250 NULL
+292 NULL
+299 NULL
+321 0000000765
+323 NULL
+340 NULL
+394 NULL
424 NULL
+441 NULL
+500 0000000900
+500 0000000900
+500 0000000900
+660 NULL
+987 NULL
+2550 NULL
+2760 NULL
+3330 NULL
+3410 NULL
+7876 NULL
+9112 0000008771
+76710 NULL
+569300 NULL
drop view test.v1 ;
-CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61 limit 20 ;
+SELECT * FROM test.v1 order by f59,f60,f61 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1 limit 50;
+SELECT * FROM test.v1 order by f59,f61 desc limit 50;
F59 f61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
+100 0000000004
250 NULL
340 NULL
-3410 NULL
+441 NULL
+660 NULL
2550 NULL
+2760 NULL
3330 NULL
-441 NULL
+3410 NULL
+76710 NULL
+569300 NULL
drop view test.v1 ;
Testcase 3.3.1.54
@@ -9803,7 +9803,7 @@ Insert into t2 values (2,2000) ;
Insert into t2 values (31,97) ;
Create view test.v1 as select t1.f59, t1.f60
from t1,t2 where t1.f59=t2.f59 ;
-Select * from test.v1 limit 50 ;
+Select * from test.v1 order by f59 limit 50 ;
f59 f60
1 10
2 20
@@ -9869,7 +9869,7 @@ create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59 ;
-select * from test.v1;
+select * from test.v1 order by t1_f59 ;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
@@ -9882,7 +9882,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9908,7 +9908,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9934,7 +9934,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select f59, f60, f61, a, b
FROM t2 natural join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
Select f59, f60, f61, a, b
@@ -9945,11 +9945,11 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+NULL 4 NULL single NULL 4
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
-NULL 4 NULL single NULL 4
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
@@ -9960,7 +9960,7 @@ NULL 4 NULL single NULL 4
Create or replace view test.v1 as
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
3 single-f3 6 NULL 3
@@ -9975,7 +9975,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
1 NULL single NULL 3 NULL
2 2 double double 6 6
@@ -9990,11 +9990,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select f59, f60, a, b
FROM t2 natural right outer join t1;
-Select * from v1;
+Select * from v1 order by f59 desc;
f59 f60 a b
-1 single 1 NULL
-2 double 2 2
3 single-f3 3 NULL
+2 double 2 2
+1 single 1 NULL
Select f59, f60, a, b
FROM t2 natural right outer join t1;
f59 f60 a b
@@ -10015,18 +10015,18 @@ Insert into t1 values (107,501,601) ;
Insert into t1 values (901,801,401) ;
Create or replace view test.v1 as
Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
1
2
3
-100
5
6
7
8
9
10
+15
Drop view if exists test.v1 ;
Drop table if exists t1 ;
Drop view if exists v1;
@@ -10036,7 +10036,7 @@ Insert into t1 values (207,201,201) ;
Insert into t1 values (201,201,201) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
207
Drop view if exists test.v1 ;
@@ -10048,7 +10048,7 @@ Insert into t1 values (27,21,21) ;
Insert into t1 values (21,21,21) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
27
Drop view test.v1 ;
@@ -10063,18 +10063,18 @@ Insert into t1 values (17,51,61) ;
Insert into t1 values (91,81,41) ;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union ALL (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union Distinct (Select f59 from t1 where f60=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Drop view test.v1 ;
@@ -10086,7 +10086,7 @@ insert into t1 values (107,501,601);
insert into t1 values (901,801,401);
create or replace view test.v1 as
select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59;
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10094,7 +10094,7 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union all
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10103,14 +10103,14 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union distinct
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
drop view if exists test.v1 ;
@@ -10121,13 +10121,13 @@ Testcase 3.3.1.64
Drop view if exists test.v1 ;
CREATE VIEW test.v1 AS SELECT F59
FROM test.tb2 where test.tb2.F59 = 109;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
F59
109
109
ALTER VIEW test.v1 AS SELECT *
FROM test.tb2 WHERE test.tb2.f59 = 242 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Drop view test.v1 ;
@@ -10274,15 +10274,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi
EXPLAIN SELECT * FROM test3.v32;
ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
-FIXME - Setting join_limit to 30 - hangs for higher values
+FIXME - Setting join_limit to 28 - hangs for higher values
----------------------------------------------------------
-SET @join_limit = 30;
+SET @join_limit = 28;
SET @max_level = @join_limit - 1;
DROP DATABASE IF EXISTS test3;
DROP TABLE IF EXISTS test1.t1;
DROP TABLE IF EXISTS test2.t1;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10389,15 +10387,11 @@ CREATE OR REPLACE VIEW test1.v26 AS SELECT f1, f2
FROM test3.t1 tab1 NATURAL JOIN test1.v25 tab2;
CREATE OR REPLACE VIEW test1.v27 AS SELECT f1, f2
FROM test1.t1 tab1 NATURAL JOIN test1.v26 tab2;
-CREATE OR REPLACE VIEW test1.v28 AS SELECT f1, f2
-FROM test2.t1 tab1 NATURAL JOIN test1.v27 tab2;
-CREATE OR REPLACE VIEW test1.v29 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v28 tab2;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
View Create View character_set_client collation_connection
-v29 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v29` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v28` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
+v27 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v27` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test1`.`t1` `tab1` join `test1`.`v26` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
f1 f2
5 five
@@ -10406,14 +10400,14 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-CREATE VIEW test1.v30 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v29 tab2;
-SHOW CREATE VIEW test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
+CREATE VIEW test1.v28 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v27 tab2;
+SHOW CREATE VIEW test1.v28;
View Create View character_set_client collation_connection
-v30 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v30` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v29` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
+v28 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v28` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v27` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
f1 f2
5 five
@@ -10422,33 +10416,31 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
-DROP VIEW IF EXISTS test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
+DROP VIEW IF EXISTS test1.v28;
CREATE OR REPLACE VIEW test1.v0 AS
SELECT f1 as f2, f2 as f1 FROM test2.t1;
CREATE OR REPLACE VIEW test2.v0 AS
SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10519,7 +10511,7 @@ info: Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb2 where f59 = 8 and f60 = 105;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ;
f59 f60
8 105
Drop view test.v1 ;
@@ -10538,7 +10530,7 @@ f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ;
f59 f60
891 105
891 105
@@ -10555,7 +10547,7 @@ DELETE FROM test.v1 where f59 = 789 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 789 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 789;
+SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ;
f59 f60
Drop view test.v1 ;
@@ -10568,7 +10560,7 @@ DELETE FROM test.v1 where f59 = 711 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 711 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 711;
+SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ;
f59 f60
Drop view test.v1 ;
diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result
index f1ec5db776c..3f4ad45f79a 100644
--- a/mysql-test/suite/funcs_1/r/myisam_views.result
+++ b/mysql-test/suite/funcs_1/r/myisam_views.result
@@ -206,47 +206,47 @@ Insert into t1 values (500,9866);
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 where f59=250;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60,f61 limit 0,10;
f59 f60 f61
250 87895654 NULL
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
1 1 0000000001
2 2 0000000002
3 3 0000000003
4 4 0000000004
+4 74 NULL
5 5 0000000005
6 6 0000000006
7 7 0000000007
8 8 0000000008
9 9 0000000009
-10 10 0000000010
CREATE or REPLACE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
5 5 0000000005
6 6 0000000006
7 7 0000000007
CREATE or REPLACE VIEW v1 AS select distinct f59
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
5
6
7
ALTER VIEW v1 AS select f59
FROM test.tb2 limit 6,2;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
7
8
CREATE or REPLACE VIEW v1 AS select f59
from tb2 order by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -288,7 +288,7 @@ f59
660
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -302,7 +302,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 asc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -316,21 +316,21 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 desc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-569300
-76710
-9112
-7876
-3410
-3330
-2760
-2550
-987
-660
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
union (select f59 from t1) limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -344,7 +344,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION DISTINCT(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -358,103 +358,103 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION ALL(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
3
4
+4
5
6
7
8
9
-10
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH LOCAL CHECK OPTION ;
-select * FROM v1 limit 0,50;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH CASCADED CHECK OPTION ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
-10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
FROM test.tb2 WITH CASCADED CHECK OPTION;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
CREATE or REPLACE VIEW v1 AS select f59, f60
from test.tb2 where f59=3330 ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60 limit 0,10;
f59 f60
3330 764376
DROP VIEW v1 ;
@@ -898,11 +898,11 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SELECT * FROM test.v1;
f1
1
-CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2;
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109`,`tb2`.`f110` AS `f110`,`tb2`.`f111` AS `f111`,`tb2`.`f112` AS `f112`,`tb2`.`f113` AS `f113`,`tb2`.`f114` AS `f114`,`tb2`.`f115` AS `f115`,`tb2`.`f116` AS `f116`,`tb2`.`f117` AS `f117` from `tb2` limit 2 latin1 latin1_swedish_ci
-SELECT * FROM test.v1 ;
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109`,`tb2`.`f110` AS `f110`,`tb2`.`f111` AS `f111`,`tb2`.`f112` AS `f112`,`tb2`.`f113` AS `f113`,`tb2`.`f114` AS `f114`,`tb2`.`f115` AS `f115`,`tb2`.`f116` AS `f116`,`tb2`.`f117` AS `f117` from `tb2` order by `tb2`.`f59` limit 2 latin1 latin1_swedish_ci
+SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
@@ -910,48 +910,48 @@ CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100;
SHOW CREATE VIEW test.v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 latin1 latin1_swedish_ci
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59;
F59
-76710
-2760
-569300
-660
-250
-340
-3410
-2550
-3330
-441
-24
-323
-34
4
15
+17
+19
22
-394
+24
+27
+29
+34
94
-195
-292
-987
-7876
-321
-9112
-500
-500
-500
107
+107
+109
109
+195
207
209
-27
-29
-17
-19
-107
-109
-299
242
+250
+292
+299
+321
+323
+340
+394
424
+441
+500
+500
+500
+660
+987
+2550
+2760
+3330
+3410
+7876
+9112
+76710
+569300
Drop table test.t1 ;
Drop view test.v1 ;
@@ -1103,7 +1103,7 @@ Testcase 3.3.1.21
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS v1;
CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59, F60 desc;
F59 F60
1 1
2 2
@@ -1212,7 +1212,7 @@ DROP VIEW IF EXISTS test.v1;
Drop VIEW IF EXISTS test.v1_1 ;
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Create view test.v1_1 AS Select F59 from test.v1 ;
-Select * from test.v1_1 limit 20 ;
+Select * from test.v1_1 order by F59 limit 20 ;
F59
1
2
@@ -1226,58 +1226,58 @@ create database test2 ;
Create view test2.v2 AS Select * from test.tb2 limit 50,50;
use test2 ;
Create view v1 AS Select * from test.tb2 limit 50 ;
-Select * from v1 ;
+Select * from v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
Select * from test2.v2 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
Drop view if exists test2.v1 ;
@@ -1340,18 +1340,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view if exists test.v1_firstview ;
Drop view if exists test.v1_secondview ;
Drop view if exists test.v1 ;
@@ -1369,18 +1369,18 @@ CREATE VIEW v1
AS SELECT test.v1_firstview.F59, test.v1_firstview.F60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view v1 ;
Drop view test.v1_firstview ;
Drop view test.v1_secondview ;
@@ -1395,18 +1395,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.tb2
ON test.v1_firstview.f59 = test.tb2.f59;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view test.v1 ;
Drop view test.v1_firstview;
@@ -1419,18 +1419,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ;
CREATE VIEW v1
AS SELECT v1_firstview.f59, v1_firstview.f60
FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop database test2 ;
Testcase 3.3.1.37
@@ -1442,18 +1442,18 @@ Drop view if exists test.v1_1 ;
Drop view if exists test.v1_1 ;
Drop view if exists test.v1_main ;
Create view test.v1 as Select f59, f60 FROM test.tb2;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
Create table t1(f59 int, f60 int);
Insert into t1 values (90,507) ;
Create view v1_1 as Select f59,f60 from t1 ;
@@ -1463,18 +1463,18 @@ f59 f60
Create view v1_main
as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1
ON test.tb2.f59 = test.v1.f59;
-Select * from v1_main limit 0,10;
+Select * from v1_main order by f59 limit 0,10;
f59
1
2
3
4
4
+4
+4
5
6
7
-8
-9
Drop table t1;
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1760,7 +1760,7 @@ Drop view if exists test.v1_main;
Drop view if exists test1.v1_1 ;
Drop database if exists test3 ;
Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ;
-Select * from test.v1 ;
+Select * from test.v1 order by f59,f60;
f59 f60
1 1
2 2
@@ -1772,16 +1772,16 @@ f59 f60
8 8
9 9
10 10
-76710 226546
-2760 985654
-569300 9114376
-660 876546
250 87895654
340 9984376
-3410 996546
+441 16546
+660 876546
2550 775654
+2760 985654
3330 764376
-441 16546
+3410 996546
+76710 226546
+569300 9114376
Create table test1.t1 (f59 int,f60 int) ;
Insert into test1.t1 values (199,507) ;
Create view test1.v1_1 as Select f59,f60 from test1.t1 ;
@@ -1814,7 +1814,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1
AS Select f59 from (Select * FROM tb2 limit 20) tx ;
ERROR HY000: View's SELECT contains a subquery in the FROM clause
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
ERROR 42S02: Table 'test.v1' doesn't exist
Drop view if exists test.v1 ;
@@ -1895,7 +1895,7 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04;
UPDATE test.v1 SET f59 = 30 where F59 = 04 ;
affected rows: 2
info: Rows matched: 2 Changed: 2 Warnings: 0
-SELECT * FROM test.v1 where f59 = 30 ;
+SELECT * FROM test.v1 where f59 = 30 order by f59;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
SELECT * FROM test.tb2 where f59 = 30 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
@@ -1908,7 +1908,7 @@ SELECT * FROM tb2 where f59 = 100 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
drop view if exists test.v1 ;
Drop TABLE IF EXISTS test.t1 ;
@@ -1984,7 +1984,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60
FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
UPDATE test.v1 SET f59 = 198 where f59=195 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
195 87
drop view if exists test.v1 ;
@@ -1998,7 +1998,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ;
CREATE VIEW test.v2 as SELECT * FROM test.v1 ;
UPDATE test.v1 SET F59 = 919 where f59 = 0987 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
987 41
UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
@@ -9693,115 +9693,115 @@ Testcase 3.3.1.50 - 3.3.1.53
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS test.v1;
CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by F59, F61 ;
F59 F61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
-250 NULL
-340 NULL
-3410 NULL
-2550 NULL
-3330 NULL
-441 NULL
-24 NULL
-323 NULL
-34 NULL
-100 NULL
15 NULL
+17 0000000016
+19 0000000014
22 NULL
-394 NULL
+24 NULL
+27 0000000026
+29 0000000024
+34 NULL
94 NULL
-195 NULL
-292 NULL
-987 NULL
-7876 NULL
-321 0000000765
-9112 0000008771
-500 0000000900
-500 0000000900
-500 0000000900
+100 NULL
+100 0000000004
+107 0000000106
107 0000000106
109 0000000104
+109 0000000104
+195 NULL
207 0000000206
209 0000000204
-27 0000000026
-29 0000000024
-17 0000000016
-19 0000000014
-107 0000000106
-109 0000000104
-299 NULL
242 NULL
+250 NULL
+292 NULL
+299 NULL
+321 0000000765
+323 NULL
+340 NULL
+394 NULL
424 NULL
+441 NULL
+500 0000000900
+500 0000000900
+500 0000000900
+660 NULL
+987 NULL
+2550 NULL
+2760 NULL
+3330 NULL
+3410 NULL
+7876 NULL
+9112 0000008771
+76710 NULL
+569300 NULL
drop view test.v1 ;
-CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61 limit 20 ;
+SELECT * FROM test.v1 order by f59,f60,f61 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1 limit 50;
+SELECT * FROM test.v1 order by f59,f61 desc limit 50;
F59 f61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
+100 0000000004
250 NULL
340 NULL
-3410 NULL
+441 NULL
+660 NULL
2550 NULL
+2760 NULL
3330 NULL
-441 NULL
+3410 NULL
+76710 NULL
+569300 NULL
drop view test.v1 ;
Testcase 3.3.1.54
@@ -9820,7 +9820,7 @@ Insert into t2 values (2,2000) ;
Insert into t2 values (31,97) ;
Create view test.v1 as select t1.f59, t1.f60
from t1,t2 where t1.f59=t2.f59 ;
-Select * from test.v1 limit 50 ;
+Select * from test.v1 order by f59 limit 50 ;
f59 f60
1 10
2 20
@@ -9886,7 +9886,7 @@ create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59 ;
-select * from test.v1;
+select * from test.v1 order by t1_f59 ;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
@@ -9899,7 +9899,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9925,7 +9925,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9951,7 +9951,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select f59, f60, f61, a, b
FROM t2 natural join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
Select f59, f60, f61, a, b
@@ -9962,11 +9962,11 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+NULL 4 NULL single NULL 4
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
-NULL 4 NULL single NULL 4
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
@@ -9977,7 +9977,7 @@ NULL 4 NULL single NULL 4
Create or replace view test.v1 as
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
3 single-f3 6 NULL 3
@@ -9992,7 +9992,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
1 NULL single NULL 3 NULL
2 2 double double 6 6
@@ -10007,11 +10007,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select f59, f60, a, b
FROM t2 natural right outer join t1;
-Select * from v1;
+Select * from v1 order by f59 desc;
f59 f60 a b
-1 single 1 NULL
-2 double 2 2
3 single-f3 3 NULL
+2 double 2 2
+1 single 1 NULL
Select f59, f60, a, b
FROM t2 natural right outer join t1;
f59 f60 a b
@@ -10032,18 +10032,18 @@ Insert into t1 values (107,501,601) ;
Insert into t1 values (901,801,401) ;
Create or replace view test.v1 as
Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
1
2
3
-100
5
6
7
8
9
10
+15
Drop view if exists test.v1 ;
Drop table if exists t1 ;
Drop view if exists v1;
@@ -10053,7 +10053,7 @@ Insert into t1 values (207,201,201) ;
Insert into t1 values (201,201,201) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
207
Drop view if exists test.v1 ;
@@ -10065,7 +10065,7 @@ Insert into t1 values (27,21,21) ;
Insert into t1 values (21,21,21) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
27
Drop view test.v1 ;
@@ -10080,18 +10080,18 @@ Insert into t1 values (17,51,61) ;
Insert into t1 values (91,81,41) ;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union ALL (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union Distinct (Select f59 from t1 where f60=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Drop view test.v1 ;
@@ -10103,7 +10103,7 @@ insert into t1 values (107,501,601);
insert into t1 values (901,801,401);
create or replace view test.v1 as
select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59;
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10111,7 +10111,7 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union all
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10120,14 +10120,14 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union distinct
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
drop view if exists test.v1 ;
@@ -10138,13 +10138,13 @@ Testcase 3.3.1.64
Drop view if exists test.v1 ;
CREATE VIEW test.v1 AS SELECT F59
FROM test.tb2 where test.tb2.F59 = 109;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
F59
109
109
ALTER VIEW test.v1 AS SELECT *
FROM test.tb2 WHERE test.tb2.f59 = 242 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
Drop view test.v1 ;
@@ -10291,15 +10291,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi
EXPLAIN SELECT * FROM test3.v32;
ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
-FIXME - Setting join_limit to 30 - hangs for higher values
+FIXME - Setting join_limit to 28 - hangs for higher values
----------------------------------------------------------
-SET @join_limit = 30;
+SET @join_limit = 28;
SET @max_level = @join_limit - 1;
DROP DATABASE IF EXISTS test3;
DROP TABLE IF EXISTS test1.t1;
DROP TABLE IF EXISTS test2.t1;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10509,7 +10507,7 @@ info: Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb2 where f59 = 8 and f60 = 105;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ;
f59 f60
8 105
Drop view test.v1 ;
@@ -10528,7 +10526,7 @@ f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL
-SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ;
f59 f60
891 105
891 105
@@ -10545,7 +10543,7 @@ DELETE FROM test.v1 where f59 = 789 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 789 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
-SELECT f59,f60 FROM test.v1 where f59 = 789;
+SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ;
f59 f60
Drop view test.v1 ;
@@ -10558,7 +10556,7 @@ DELETE FROM test.v1 where f59 = 711 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 711 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117
-SELECT f59,f60 FROM test.v1 where f59 = 711;
+SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ;
f59 f60
Drop view test.v1 ;
diff --git a/mysql-test/suite/funcs_1/r/ndb_cursors.result b/mysql-test/suite/funcs_1/r/ndb_cursors.result
index dd96a8104c6..cf65b615add 100644
--- a/mysql-test/suite/funcs_1/r/ndb_cursors.result
+++ b/mysql-test/suite/funcs_1/r/ndb_cursors.result
@@ -75,7 +75,7 @@ Note 1265 Data truncated for column 'f45' at row 1
Note 1265 Data truncated for column 'f47' at row 1
Note 1265 Data truncated for column 'f49' at row 1
Note 1265 Data truncated for column 'f51' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb1.txt' into table tb1 ;
NOT YET IMPLEMENTED: cursor tests
diff --git a/mysql-test/suite/funcs_1/r/ndb_func_view.result b/mysql-test/suite/funcs_1/r/ndb_func_view.result
index ab4508fb302..02ef728fad5 100644
--- a/mysql-test/suite/funcs_1/r/ndb_func_view.result
+++ b/mysql-test/suite/funcs_1/r/ndb_func_view.result
@@ -286,8 +286,8 @@ CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values;
SELECT my_char_30, id FROM t1_values
WHERE select_id = 190 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 190 OR select_id IS NULL) order by id;
@@ -304,8 +304,8 @@ A<--------30 characters-------> <--------30 characters-------> 3
A ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
A-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select concat(_latin1'A',`t1_values`.`my_char_30`) AS `CONCAT('A',my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select concat(_latin1'A',`t1_values`.`my_char_30`) AS `CONCAT('A',my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 189 OR select_id IS NULL) order by id;
@@ -324,8 +324,8 @@ SELECT LTRIM(my_varbinary_1000),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 188 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varbinary_1000`) AS `LTRIM(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varbinary_1000`) AS `LTRIM(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 188 OR select_id IS NULL) order by id;
@@ -338,8 +338,8 @@ SELECT LTRIM(my_binary_30),
my_binary_30, id FROM t1_values
WHERE select_id = 187 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_binary_30`) AS `LTRIM(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_binary_30`) AS `LTRIM(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 187 OR select_id IS NULL) order by id;
@@ -352,8 +352,8 @@ SELECT LTRIM(my_varchar_1000),
my_varchar_1000, id FROM t1_values
WHERE select_id = 186 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varchar_1000`) AS `LTRIM(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varchar_1000`) AS `LTRIM(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 186 OR select_id IS NULL) order by id;
@@ -366,8 +366,8 @@ SELECT LTRIM(my_char_30),
my_char_30, id FROM t1_values
WHERE select_id = 185 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_char_30`) AS `LTRIM(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_char_30`) AS `LTRIM(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 185 OR select_id IS NULL) order by id;
@@ -380,8 +380,8 @@ SELECT LOWER(my_varbinary_1000),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 184 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varbinary_1000`) AS `LOWER(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varbinary_1000`) AS `LOWER(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 184 OR select_id IS NULL) order by id;
@@ -394,8 +394,8 @@ SELECT LOWER(my_binary_30),
my_binary_30, id FROM t1_values
WHERE select_id = 183 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_binary_30`) AS `LOWER(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_binary_30`) AS `LOWER(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 183 OR select_id IS NULL) order by id;
@@ -408,8 +408,8 @@ SELECT LOWER(my_varchar_1000),
my_varchar_1000, id FROM t1_values
WHERE select_id = 182 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LOWER(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LOWER(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 182 OR select_id IS NULL) order by id;
@@ -422,8 +422,8 @@ SELECT LOWER(my_char_30),
my_char_30, id FROM t1_values
WHERE select_id = 181 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_char_30`) AS `LOWER(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_char_30`) AS `LOWER(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 181 OR select_id IS NULL) order by id;
@@ -436,8 +436,8 @@ SELECT LOCATE('-', ' - -ABC', my_decimal),
my_decimal, id FROM t1_values
WHERE select_id = 180 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_decimal`) AS `LOCATE('-', ' - -ABC', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_decimal`) AS `LOCATE('-', ' - -ABC', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 180 OR select_id IS NULL) order by id;
@@ -450,8 +450,8 @@ SELECT LOCATE('-', ' - -ABC', my_double),
my_double, id FROM t1_values
WHERE select_id = 179 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_double`) AS `LOCATE('-', ' - -ABC', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_double`) AS `LOCATE('-', ' - -ABC', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 179 OR select_id IS NULL) order by id;
@@ -464,8 +464,8 @@ SELECT LOCATE('-', ' - -ABC', my_bigint),
my_bigint, id FROM t1_values
WHERE select_id = 178 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_bigint`) AS `LOCATE('-', ' - -ABC', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_bigint`) AS `LOCATE('-', ' - -ABC', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 178 OR select_id IS NULL) order by id;
@@ -478,8 +478,8 @@ SELECT LOCATE('-', my_varbinary_1000, 3),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 177 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varbinary_1000`,3) AS `LOCATE('-', my_varbinary_1000, 3)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varbinary_1000`,3) AS `LOCATE('-', my_varbinary_1000, 3)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 177 OR select_id IS NULL) order by id;
@@ -492,8 +492,8 @@ SELECT LOCATE('-', my_binary_30, 3),
my_binary_30, id FROM t1_values
WHERE select_id = 176 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_binary_30`,3) AS `LOCATE('-', my_binary_30, 3)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_binary_30`,3) AS `LOCATE('-', my_binary_30, 3)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 176 OR select_id IS NULL) order by id;
@@ -506,8 +506,8 @@ SELECT LOCATE('-', my_varchar_1000, 3),
my_varchar_1000, id FROM t1_values
WHERE select_id = 175 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varchar_1000`,3) AS `LOCATE('-', my_varchar_1000, 3)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varchar_1000`,3) AS `LOCATE('-', my_varchar_1000, 3)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 175 OR select_id IS NULL) order by id;
@@ -520,8 +520,8 @@ SELECT LOCATE('-', my_char_30, 3),
my_char_30, id FROM t1_values
WHERE select_id = 174 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_char_30`,3) AS `LOCATE('-', my_char_30, 3)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_char_30`,3) AS `LOCATE('-', my_char_30, 3)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 174 OR select_id IS NULL) order by id;
@@ -534,8 +534,8 @@ SELECT LOCATE(my_varbinary_1000, my_binary_30 ),
my_varbinary_1000, my_binary_30 id FROM t1_values
WHERE select_id = 173 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varbinary_1000, my_binary_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varbinary_1000, my_binary_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 173 OR select_id IS NULL) order by id;
@@ -548,8 +548,8 @@ SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ),
my_varbinary_1000, my_varchar_1000 id FROM t1_values
WHERE select_id = 172 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varbinary_1000, my_varchar_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varbinary_1000, my_varchar_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 172 OR select_id IS NULL) order by id;
@@ -562,8 +562,8 @@ SELECT LOCATE(my_varbinary_1000, my_char_30 ),
my_varbinary_1000, my_char_30 id FROM t1_values
WHERE select_id = 171 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varbinary_1000, my_char_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varbinary_1000, my_char_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 171 OR select_id IS NULL) order by id;
@@ -576,8 +576,8 @@ SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 170 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varbinary_1000, my_varbinary_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varbinary_1000, my_varbinary_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 170 OR select_id IS NULL) order by id;
@@ -590,8 +590,8 @@ SELECT LOCATE(my_binary_30, my_varbinary_1000 ),
my_binary_30, my_varbinary_1000 id FROM t1_values
WHERE select_id = 169 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_binary_30, my_varbinary_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_binary_30, my_varbinary_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 169 OR select_id IS NULL) order by id;
@@ -604,8 +604,8 @@ SELECT LOCATE(my_binary_30, my_varchar_1000 ),
my_binary_30, my_varchar_1000 id FROM t1_values
WHERE select_id = 168 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_binary_30, my_varchar_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_binary_30, my_varchar_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 168 OR select_id IS NULL) order by id;
@@ -618,8 +618,8 @@ SELECT LOCATE(my_binary_30, my_char_30 ),
my_binary_30, my_char_30 id FROM t1_values
WHERE select_id = 167 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_binary_30, my_char_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_char_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_binary_30, my_char_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_char_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 167 OR select_id IS NULL) order by id;
@@ -632,8 +632,8 @@ SELECT LOCATE(my_binary_30, my_binary_30 ),
my_binary_30, id FROM t1_values
WHERE select_id = 166 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_binary_30, my_binary_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_binary_30, my_binary_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 166 OR select_id IS NULL) order by id;
@@ -646,8 +646,8 @@ SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ),
my_varchar_1000, my_varbinary_1000 id FROM t1_values
WHERE select_id = 165 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varchar_1000, my_varbinary_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varchar_1000, my_varbinary_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 165 OR select_id IS NULL) order by id;
@@ -660,8 +660,8 @@ SELECT LOCATE(my_varchar_1000, my_binary_30 ),
my_varchar_1000, my_binary_30 id FROM t1_values
WHERE select_id = 164 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varchar_1000, my_binary_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varchar_1000, my_binary_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 164 OR select_id IS NULL) order by id;
@@ -674,8 +674,8 @@ SELECT LOCATE(my_varchar_1000, my_char_30 ),
my_varchar_1000, my_char_30 id FROM t1_values
WHERE select_id = 163 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varchar_1000, my_char_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varchar_1000, my_char_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 163 OR select_id IS NULL) order by id;
@@ -688,8 +688,8 @@ SELECT LOCATE(my_varchar_1000, my_varchar_1000 ),
my_varchar_1000, id FROM t1_values
WHERE select_id = 162 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varchar_1000, my_varchar_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varchar_1000, my_varchar_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 162 OR select_id IS NULL) order by id;
@@ -702,8 +702,8 @@ SELECT LOCATE(my_char_30, my_varbinary_1000 ),
my_char_30, my_varbinary_1000 id FROM t1_values
WHERE select_id = 161 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_char_30, my_varbinary_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_char_30, my_varbinary_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 161 OR select_id IS NULL) order by id;
@@ -716,8 +716,8 @@ SELECT LOCATE(my_char_30, my_binary_30 ),
my_char_30, my_binary_30 id FROM t1_values
WHERE select_id = 160 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_char_30, my_binary_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_binary_30` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_char_30, my_binary_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_binary_30` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 160 OR select_id IS NULL) order by id;
@@ -730,8 +730,8 @@ SELECT LOCATE(my_char_30, my_varchar_1000 ),
my_char_30, my_varchar_1000 id FROM t1_values
WHERE select_id = 159 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_char_30, my_varchar_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_char_30, my_varchar_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 159 OR select_id IS NULL) order by id;
@@ -744,8 +744,8 @@ SELECT LOCATE(my_char_30, my_char_30 ),
my_char_30, id FROM t1_values
WHERE select_id = 158 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_char_30, my_char_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_char_30, my_char_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 158 OR select_id IS NULL) order by id;
@@ -758,8 +758,8 @@ SELECT LOCATE('char', my_varbinary_1000),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 157 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varbinary_1000`) AS `LOCATE('char', my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varbinary_1000`) AS `LOCATE('char', my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 157 OR select_id IS NULL) order by id;
@@ -772,8 +772,8 @@ SELECT LOCATE('char', my_binary_30),
my_binary_30, id FROM t1_values
WHERE select_id = 156 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_binary_30`) AS `LOCATE('char', my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_binary_30`) AS `LOCATE('char', my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 156 OR select_id IS NULL) order by id;
@@ -786,8 +786,8 @@ SELECT LOCATE('char', my_varchar_1000),
my_varchar_1000, id FROM t1_values
WHERE select_id = 155 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varchar_1000`) AS `LOCATE('char', my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varchar_1000`) AS `LOCATE('char', my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 155 OR select_id IS NULL) order by id;
@@ -800,8 +800,8 @@ SELECT LOCATE('char', my_char_30),
my_char_30, id FROM t1_values
WHERE select_id = 154 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `LOCATE('char', my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `LOCATE('char', my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 154 OR select_id IS NULL) order by id;
@@ -823,8 +823,8 @@ LOAD_FILE('../tmp/func_view.dat') id
äÄ@
5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'../tmp/func_view.dat') AS `LOAD_FILE('../tmp/func_view.dat')`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'../tmp/func_view.dat') AS `LOAD_FILE('../tmp/func_view.dat')`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 153 OR select_id IS NULL) order by id;
@@ -848,8 +848,8 @@ SELECT LENGTH(my_varbinary_1000),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 152 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varbinary_1000`) AS `LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varbinary_1000`) AS `LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 152 OR select_id IS NULL) order by id;
@@ -862,8 +862,8 @@ SELECT LENGTH(my_binary_30),
my_binary_30, id FROM t1_values
WHERE select_id = 151 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_binary_30`) AS `LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_binary_30`) AS `LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 151 OR select_id IS NULL) order by id;
@@ -876,8 +876,8 @@ SELECT LENGTH(my_varchar_1000),
my_varchar_1000, id FROM t1_values
WHERE select_id = 150 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varchar_1000`) AS `LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varchar_1000`) AS `LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 150 OR select_id IS NULL) order by id;
@@ -890,8 +890,8 @@ SELECT LENGTH(my_char_30),
my_char_30, id FROM t1_values
WHERE select_id = 149 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_char_30`) AS `LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_char_30`) AS `LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 149 OR select_id IS NULL) order by id;
@@ -911,8 +911,8 @@ Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
Error 1292 Truncated incorrect DECIMAL value: ''
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJjÄäÜüÖö',`t1_values`.`my_decimal`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJjÄäÜüÖö',`t1_values`.`my_decimal`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 148 OR select_id IS NULL) order by id;
@@ -938,8 +938,8 @@ NULL NULL 1
- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varbinary_1000`,2) AS `LEFT(my_varbinary_1000, 2)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varbinary_1000`,2) AS `LEFT(my_varbinary_1000, 2)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 147 OR select_id IS NULL) order by id;
@@ -962,8 +962,8 @@ NULL NULL 1
- ---äÖüß@µ*$--
-1 -1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_binary_30`,2) AS `LEFT(my_binary_30, 2)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_binary_30`,2) AS `LEFT(my_binary_30, 2)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 146 OR select_id IS NULL) order by id;
@@ -986,8 +986,8 @@ NULL NULL 1
- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varchar_1000`,2) AS `LEFT(my_varchar_1000, 2)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varchar_1000`,2) AS `LEFT(my_varchar_1000, 2)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 145 OR select_id IS NULL) order by id;
@@ -1010,8 +1010,8 @@ NULL NULL 1
- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_char_30`,2) AS `LEFT(my_char_30, 2)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_char_30`,2) AS `LEFT(my_char_30, 2)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 144 OR select_id IS NULL) order by id;
@@ -1030,8 +1030,8 @@ SELECT LCASE(my_varchar_1000),
my_varchar_1000, id FROM t1_values
WHERE select_id = 143 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LCASE(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LCASE(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 143 OR select_id IS NULL) order by id;
@@ -1044,8 +1044,8 @@ SELECT INSTR(my_char_30, 'char'),
my_char_30, id FROM t1_values
WHERE select_id = 142 OR select_id IS NULL order by id;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `INSTR(my_char_30, 'char')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `INSTR(my_char_30, 'char')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 142 OR select_id IS NULL) order by id;
@@ -1064,8 +1064,8 @@ NULL NULL 1
160 ---äÖüß@µ*$-- 4
16 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varbinary_1000`) AS `BIT_LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varbinary_1000`) AS `BIT_LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 141 OR select_id IS NULL) order by id;
@@ -1090,8 +1090,8 @@ NULL NULL 1
240 ---äÖüß@µ*$--
240 -1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_binary_30`) AS `BIT_LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_binary_30`) AS `BIT_LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 140 OR select_id IS NULL) order by id;
@@ -1116,8 +1116,8 @@ NULL NULL 1
160 ---äÖüß@µ*$-- 4
16 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varchar_1000`) AS `BIT_LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varchar_1000`) AS `BIT_LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 139 OR select_id IS NULL) order by id;
@@ -1142,8 +1142,8 @@ NULL NULL 1
152 ---äÖüß@µ*$-- 4
16 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_char_30`) AS `BIT_LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_char_30`) AS `BIT_LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 138 OR select_id IS NULL) order by id;
@@ -1168,8 +1168,8 @@ IS_NULL NULL 1
2000 2000 4
2005 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_year`,_latin1'IS_NULL') AS `IFNULL(my_year,'IS_NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_year`,_latin1'IS_NULL') AS `IFNULL(my_year,'IS_NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 137 OR select_id IS NULL) order by id;
@@ -1194,8 +1194,8 @@ IS_NULL NULL 1
13:00:00 13:00:00 4
10:00:00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_time`,_latin1'IS_NULL') AS `IFNULL(my_time,'IS_NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_time`,_latin1'IS_NULL') AS `IFNULL(my_time,'IS_NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 136 OR select_id IS NULL) order by id;
@@ -1220,8 +1220,8 @@ IFNULL(my_timestamp,'IS_NULL') my_timestamp id
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_timestamp`,_latin1'IS_NULL') AS `IFNULL(my_timestamp,'IS_NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_timestamp`,_latin1'IS_NULL') AS `IFNULL(my_timestamp,'IS_NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 135 OR select_id IS NULL) order by id;
@@ -1246,8 +1246,8 @@ IS_NULL NULL 1
2004-02-29 2004-02-29 4
2005-06-28 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_date`,_latin1'IS_NULL') AS `IFNULL(my_date,'IS_NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_date`,_latin1'IS_NULL') AS `IFNULL(my_date,'IS_NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 134 OR select_id IS NULL) order by id;
@@ -1272,8 +1272,8 @@ IS_NULL NULL 1
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_datetime`,_latin1'IS_NULL') AS `IFNULL(my_datetime,'IS_NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_datetime`,_latin1'IS_NULL') AS `IFNULL(my_datetime,'IS_NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 133 OR select_id IS NULL) order by id;
@@ -1298,8 +1298,8 @@ IS_NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_double`,_latin1'IS_NULL') AS `IFNULL(my_double,'IS_NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_double`,_latin1'IS_NULL') AS `IFNULL(my_double,'IS_NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 132 OR select_id IS NULL) order by id;
@@ -1324,8 +1324,8 @@ IS_NULL NULL 1
0.000000000000000000000000000000 0.000000000000000000000000000000 4
-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_decimal`,_latin1'IS_NULL') AS `IFNULL(my_decimal,'IS_NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_decimal`,_latin1'IS_NULL') AS `IFNULL(my_decimal,'IS_NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 131 OR select_id IS NULL) order by id;
@@ -1350,8 +1350,8 @@ IS_NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_bigint`,_latin1'IS_NULL') AS `IFNULL(my_bigint,'IS_NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_bigint`,_latin1'IS_NULL') AS `IFNULL(my_bigint,'IS_NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 130 OR select_id IS NULL) order by id;
@@ -1376,8 +1376,8 @@ IS_NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varbinary_1000`,_latin1'IS_NULL') AS `IFNULL(my_varbinary_1000,'IS_NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varbinary_1000`,_latin1'IS_NULL') AS `IFNULL(my_varbinary_1000,'IS_NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 129 OR select_id IS NULL) order by id;
@@ -1402,8 +1402,8 @@ IS_NULL NULL 1
---äÖüß@µ*$--
-1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_binary_30`,_latin1'IS_NULL') AS `IFNULL(my_binary_30,'IS_NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_binary_30`,_latin1'IS_NULL') AS `IFNULL(my_binary_30,'IS_NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 128 OR select_id IS NULL) order by id;
@@ -1428,8 +1428,8 @@ IS_NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varchar_1000`,_latin1'IS_NULL') AS `IFNULL(my_varchar_1000,'IS_NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varchar_1000`,_latin1'IS_NULL') AS `IFNULL(my_varchar_1000,'IS_NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 127 OR select_id IS NULL) order by id;
@@ -1454,8 +1454,8 @@ IS_NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_char_30`,_latin1'IS_NULL') AS `IFNULL(my_char_30,'IS_NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_char_30`,_latin1'IS_NULL') AS `IFNULL(my_char_30,'IS_NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 126 OR select_id IS NULL) order by id;
@@ -1481,9 +1481,9 @@ IS NOT NULL 2155 3
IS NOT NULL 2000 4
IS NOT NULL 2005 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_year`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_year IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 125 OR select_id IS NULL) order by id;
@@ -1510,9 +1510,9 @@ IS NOT NULL 838:59:59 3
IS NOT NULL 13:00:00 4
IS NOT NULL 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_time`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_time IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 124 OR select_id IS NULL) order by id;
@@ -1539,9 +1539,9 @@ IS NOT NULL 2038-01-01 02:59:59 3
IS NOT NULL 2004-02-29 23:59:59 4
IS NOT NULL 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_timestamp`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_timestamp IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 123 OR select_id IS NULL) order by id;
@@ -1568,9 +1568,9 @@ IS NOT NULL 9999-12-31 3
IS NOT NULL 2004-02-29 4
IS NOT NULL 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_date`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_date IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 122 OR select_id IS NULL) order by id;
@@ -1597,9 +1597,9 @@ IS NOT NULL 9999-12-31 23:59:59 3
IS NOT NULL 2004-02-29 23:59:59 4
IS NOT NULL 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_datetime`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_datetime IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 121 OR select_id IS NULL) order by id;
@@ -1626,9 +1626,9 @@ IS NOT NULL 1.7976931348623e+308 3
IS NOT NULL 0 4
IS NOT NULL -1 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_double`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_double IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 120 OR select_id IS NULL) order by id;
@@ -1655,9 +1655,9 @@ IS NOT NULL 9999999999999999999999999999999999.999999999999999999999999999999 3
IS NOT NULL 0.000000000000000000000000000000 4
IS NOT NULL -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_decimal`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_decimal IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 119 OR select_id IS NULL) order by id;
@@ -1684,9 +1684,9 @@ IS NOT NULL 9223372036854775807 3
IS NOT NULL 0 4
IS NOT NULL -1 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_bigint`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_bigint IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 118 OR select_id IS NULL) order by id;
@@ -1713,9 +1713,9 @@ IS NOT NULL <---------1000 characters-------------------------------------------
IS NOT NULL ---äÖüß@µ*$-- 4
IS NOT NULL -1 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_varbinary_1000`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_varbinary_1000 IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 117 OR select_id IS NULL) order by id;
@@ -1742,9 +1742,9 @@ IS NOT NULL <--------30 characters-------> 3
IS NOT NULL ---äÖüß@µ*$--
IS NOT NULL -1
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_binary_30`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_binary_30 IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 116 OR select_id IS NULL) order by id;
@@ -1771,9 +1771,9 @@ IS NOT NULL <---------1000 characters-------------------------------------------
IS NOT NULL ---äÖüß@µ*$-- 4
IS NOT NULL -1 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_varchar_1000`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_varchar_1000 IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 115 OR select_id IS NULL) order by id;
@@ -1800,9 +1800,9 @@ IS NOT NULL <--------30 characters-------> 3
IS NOT NULL ---äÖüß@µ*$-- 4
IS NOT NULL -1 5
SHOW CREATE VIEW v1;
-View Create View
+View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_char_30`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_char_30 IS NULL, 'IS NULL',
-'IS NOT NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+'IS NOT NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 114 OR select_id IS NULL) order by id;
@@ -1828,8 +1828,8 @@ IS TRUE 2155 3
IS TRUE 2000 4
IS TRUE 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_year`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_year, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_year`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_year, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 113 OR select_id IS NULL) order by id;
@@ -1854,8 +1854,8 @@ IS TRUE 838:59:59 3
IS TRUE 13:00:00 4
IS TRUE 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_time`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_time, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_time`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_time, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 112 OR select_id IS NULL) order by id;
@@ -1880,8 +1880,8 @@ IS TRUE 2038-01-01 02:59:59 3
IS TRUE 2004-02-29 23:59:59 4
IS TRUE 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_timestamp`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_timestamp`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 111 OR select_id IS NULL) order by id;
@@ -1906,8 +1906,8 @@ IS TRUE 9999-12-31 3
IS TRUE 2004-02-29 4
IS TRUE 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_date`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_date, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_date`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_date, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 110 OR select_id IS NULL) order by id;
@@ -1932,8 +1932,8 @@ IS TRUE 9999-12-31 23:59:59 3
IS TRUE 2004-02-29 23:59:59 4
IS TRUE 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_datetime`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_datetime, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_datetime`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_datetime, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 109 OR select_id IS NULL) order by id;
@@ -1958,8 +1958,8 @@ IS TRUE 1.7976931348623e+308 3
IS NOT TRUE 0 4
IS TRUE -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_double`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_double, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_double`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_double, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 108 OR select_id IS NULL) order by id;
@@ -1984,8 +1984,8 @@ IS TRUE 9999999999999999999999999999999999.999999999999999999999999999999 3
IS NOT TRUE 0.000000000000000000000000000000 4
IS TRUE -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_decimal`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_decimal, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_decimal`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_decimal, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 107 OR select_id IS NULL) order by id;
@@ -2010,8 +2010,8 @@ IS TRUE 9223372036854775807 3
IS NOT TRUE 0 4
IS TRUE -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_bigint`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_bigint, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_bigint`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_bigint, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 106 OR select_id IS NULL) order by id;
@@ -2036,8 +2036,8 @@ IS NOT TRUE <---------1000 characters-------------------------------------------
IS NOT TRUE ---äÖüß@µ*$-- 4
IS TRUE -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varbinary_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varbinary_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 105 OR select_id IS NULL) order by id;
@@ -2067,8 +2067,8 @@ Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
Warning 1292 Truncated incorrect DOUBLE value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_binary_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_binary_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 104 OR select_id IS NULL) order by id;
@@ -2098,8 +2098,8 @@ IS NOT TRUE <---------1000 characters-------------------------------------------
IS NOT TRUE ---äÖüß@µ*$-- 4
IS TRUE -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varchar_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varchar_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 103 OR select_id IS NULL) order by id;
@@ -2127,8 +2127,8 @@ Warnings:
Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->'
Warning 1292 Truncated incorrect DOUBLE value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_char_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_char_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_char_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_char_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 102 OR select_id IS NULL) order by id;
@@ -2156,8 +2156,8 @@ NULL NULL 1
---???????÷@??*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using koi8r) AS `CONVERT(my_varbinary_1000 USING koi8r)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using koi8r) AS `CONVERT(my_varbinary_1000 USING koi8r)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 101 OR select_id IS NULL) order by id;
@@ -2182,8 +2182,8 @@ NULL NULL 1
---???????÷@??*$--
-1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using koi8r) AS `CONVERT(my_binary_30 USING koi8r)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using koi8r) AS `CONVERT(my_binary_30 USING koi8r)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 100 OR select_id IS NULL) order by id;
@@ -2208,8 +2208,8 @@ NULL NULL 1
---????????@??*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using koi8r) AS `CONVERT(my_varchar_1000 USING koi8r)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using koi8r) AS `CONVERT(my_varchar_1000 USING koi8r)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 99 OR select_id IS NULL) order by id;
@@ -2234,8 +2234,8 @@ NULL NULL 1
---????????@??*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using koi8r) AS `CONVERT(my_char_30 USING koi8r)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using koi8r) AS `CONVERT(my_char_30 USING koi8r)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 98 OR select_id IS NULL) order by id;
@@ -2260,8 +2260,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using utf8) AS `CONVERT(my_varbinary_1000 USING utf8)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using utf8) AS `CONVERT(my_varbinary_1000 USING utf8)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 97 OR select_id IS NULL) order by id;
@@ -2286,8 +2286,8 @@ NULL NULL 1
---äÖüß@µ*$--
-1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using utf8) AS `CONVERT(my_binary_30 USING utf8)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using utf8) AS `CONVERT(my_binary_30 USING utf8)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 96 OR select_id IS NULL) order by id;
@@ -2312,8 +2312,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using utf8) AS `CONVERT(my_varchar_1000 USING utf8)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using utf8) AS `CONVERT(my_varchar_1000 USING utf8)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 95 OR select_id IS NULL) order by id;
@@ -2338,8 +2338,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using utf8) AS `CONVERT(my_char_30 USING utf8)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using utf8) AS `CONVERT(my_char_30 USING utf8)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 94 OR select_id IS NULL) order by id;
@@ -2364,8 +2364,8 @@ NULL NULL 1
2000 2000 4
2005 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as unsigned) AS `CAST(my_year AS UNSIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as unsigned) AS `CAST(my_year AS UNSIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 93 OR select_id IS NULL) order by id;
@@ -2385,34 +2385,22 @@ my_time, id FROM t1_values
WHERE select_id = 92 OR select_id IS NULL order by id;
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 92 OR select_id IS NULL) order by id;
CAST(my_time AS UNSIGNED INTEGER) my_time id
NULL NULL 1
-18446744073709550778 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1105 Cast to unsigned converted negative integer to it's positive complement
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+18446744073701165657 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2423,34 +2411,22 @@ my_timestamp, id FROM t1_values
WHERE select_id = 91 OR select_id IS NULL order by id;
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 91 OR select_id IS NULL) order by id;
CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2461,32 +2437,22 @@ my_date, id FROM t1_values
WHERE select_id = 90 OR select_id IS NULL order by id;
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 90 OR select_id IS NULL) order by id;
CAST(my_date AS UNSIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2497,32 +2463,22 @@ my_datetime, id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL order by id;
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 89 OR select_id IS NULL) order by id;
CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2542,8 +2498,8 @@ Error 1292 Truncated incorrect DECIMAL value: ''
Error 1292 Truncated incorrect DECIMAL value: ''
Error 1292 Truncated incorrect DECIMAL value: ''
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as unsigned) AS `CAST(my_decimal AS UNSIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as unsigned) AS `CAST(my_decimal AS UNSIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 88 OR select_id IS NULL) order by id;
@@ -2572,8 +2528,8 @@ NULL NULL 1
0 0 4
18446744073709551615 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as unsigned) AS `CAST(my_bigint AS UNSIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as unsigned) AS `CAST(my_bigint AS UNSIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 87 OR select_id IS NULL) order by id;
@@ -2603,8 +2559,8 @@ Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters------
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
Warning 1105 Cast to unsigned converted negative integer to it's positive complement
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as unsigned) AS `CAST(my_varbinary_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as unsigned) AS `CAST(my_varbinary_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 86 OR select_id IS NULL) order by id;
@@ -2640,8 +2596,8 @@ Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
Warning 1292 Truncated incorrect INTEGER value: '-1'
Warning 1105 Cast to unsigned converted negative integer to it's positive complement
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as unsigned) AS `CAST(my_binary_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as unsigned) AS `CAST(my_binary_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 85 OR select_id IS NULL) order by id;
@@ -2677,8 +2633,8 @@ Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters------
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
Warning 1105 Cast to unsigned converted negative integer to it's positive complement
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as unsigned) AS `CAST(my_varchar_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as unsigned) AS `CAST(my_varchar_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 84 OR select_id IS NULL) order by id;
@@ -2713,8 +2669,8 @@ Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
Warning 1105 Cast to unsigned converted negative integer to it's positive complement
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as unsigned) AS `CAST(my_char_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as unsigned) AS `CAST(my_char_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 83 OR select_id IS NULL) order by id;
@@ -2744,8 +2700,8 @@ NULL NULL 1
2000 2000 4
2005 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as signed) AS `CAST(my_year AS SIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as signed) AS `CAST(my_year AS SIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 82 OR select_id IS NULL) order by id;
@@ -2765,32 +2721,22 @@ my_time, id FROM t1_values
WHERE select_id = 81 OR select_id IS NULL order by id;
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 81 OR select_id IS NULL) order by id;
CAST(my_time AS SIGNED INTEGER) my_time id
NULL NULL 1
--838 -838:59:59 2
-838 838:59:59 3
-13 13:00:00 4
-10 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '-838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '838:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '13:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '10:00:00'
+-8385959 -838:59:59 2
+8385959 838:59:59 3
+130000 13:00:00 4
+100000 10:00:00 5
DROP VIEW v1;
@@ -2801,34 +2747,22 @@ my_timestamp, id FROM t1_values
WHERE select_id = 80 OR select_id IS NULL order by id;
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 80 OR select_id IS NULL) order by id;
CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id
0 0000-00-00 00:00:00 1
-1970 1970-01-01 03:00:01 2
-2038 2038-01-01 02:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0000-00-00 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '1970-01-01 03:00:01'
-Warning 1292 Truncated incorrect INTEGER value: '2038-01-01 02:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+19700101030001 1970-01-01 03:00:01 2
+20380101025959 2038-01-01 02:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2839,32 +2773,22 @@ my_date, id FROM t1_values
WHERE select_id = 79 OR select_id IS NULL order by id;
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 79 OR select_id IS NULL) order by id;
CAST(my_date AS SIGNED INTEGER) my_date id
NULL NULL 1
-1 0001-01-01 2
-9999 9999-12-31 3
-2004 2004-02-29 4
-2005 2005-06-28 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28'
+10101 0001-01-01 2
+99991231 9999-12-31 3
+20040229 2004-02-29 4
+20050628 2005-06-28 5
DROP VIEW v1;
@@ -2875,32 +2799,22 @@ my_datetime, id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL order by id;
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 78 OR select_id IS NULL) order by id;
CAST(my_datetime AS SIGNED INTEGER) my_datetime id
NULL NULL 1
-1 0001-01-01 00:00:00 2
-9999 9999-12-31 23:59:59 3
-2004 2004-02-29 23:59:59 4
-2005 2005-06-28 10:00:00 5
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '0001-01-01 00:00:00'
-Warning 1292 Truncated incorrect INTEGER value: '9999-12-31 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2004-02-29 23:59:59'
-Warning 1292 Truncated incorrect INTEGER value: '2005-06-28 10:00:00'
+10101000000 0001-01-01 00:00:00 2
+99991231235959 9999-12-31 23:59:59 3
+20040229235959 2004-02-29 23:59:59 4
+20050628100000 2005-06-28 10:00:00 5
DROP VIEW v1;
@@ -2919,8 +2833,8 @@ Warnings:
Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308'
Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as signed) AS `CAST(my_double AS SIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as signed) AS `CAST(my_double AS SIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 77 OR select_id IS NULL) order by id;
@@ -2943,23 +2857,23 @@ my_decimal, id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL order by id;
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
Error 1292 Truncated incorrect DECIMAL value: ''
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as signed) AS `CAST(my_decimal AS SIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as signed) AS `CAST(my_decimal AS SIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 76 OR select_id IS NULL) order by id;
CAST(my_decimal AS SIGNED INTEGER) my_decimal id
NULL NULL 1
--10000000000000000 -9999999999999999999999999999999999.999999999999999999999999999999 2
-10000000000000000 9999999999999999999999999999999999.999999999999999999999999999999 3
+-9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2
+9223372036854775807 9999999999999999999999999999999999.999999999999999999999999999999 3
0 0.000000000000000000000000000000 4
-1 -1.000000000000000000000000000000 5
Warnings:
@@ -2980,8 +2894,8 @@ NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as signed) AS `CAST(my_bigint AS SIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as signed) AS `CAST(my_bigint AS SIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 75 OR select_id IS NULL) order by id;
@@ -3010,8 +2924,8 @@ Warning 1292 Truncated incorrect INTEGER value: ''
Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as signed) AS `CAST(my_varbinary_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as signed) AS `CAST(my_varbinary_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 74 OR select_id IS NULL) order by id;
@@ -3045,8 +2959,8 @@ Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
Warning 1292 Truncated incorrect INTEGER value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as signed) AS `CAST(my_binary_30 AS SIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as signed) AS `CAST(my_binary_30 AS SIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 73 OR select_id IS NULL) order by id;
@@ -3080,8 +2994,8 @@ Warning 1292 Truncated incorrect INTEGER value: ''
Warning 1292 Truncated incorrect INTEGER value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as signed) AS `CAST(my_varchar_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as signed) AS `CAST(my_varchar_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 72 OR select_id IS NULL) order by id;
@@ -3114,8 +3028,8 @@ Warning 1292 Truncated incorrect INTEGER value: ''
Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->'
Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as signed) AS `CAST(my_char_30 AS SIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as signed) AS `CAST(my_char_30 AS SIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 71 OR select_id IS NULL) order by id;
@@ -3132,287 +3046,255 @@ Warning 1292 Truncated incorrect INTEGER value: ' ---äÖüß@µ*$--'
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values;
-SELECT CAST(my_year AS DECIMAL),
+SELECT CAST(my_year AS DECIMAL(37,2)),
my_year, id FROM t1_values
WHERE select_id = 70 OR select_id IS NULL order by id;
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
-1901 1901 2
-2155 2155 3
-2000 2000 4
-2005 2005 5
+1901.00 1901 2
+2155.00 2155 3
+2000.00 2000 4
+2005.00 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal) AS `CAST(my_year AS DECIMAL)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 70 OR select_id IS NULL) order by id;
-CAST(my_year AS DECIMAL) my_year id
+CAST(my_year AS DECIMAL(37,2)) my_year id
NULL NULL 1
-1901 1901 2
-2155 2155 3
-2000 2000 4
-2005 2005 5
+1901.00 1901 2
+2155.00 2155 3
+2000.00 2000 4
+2005.00 2005 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values;
-SELECT CAST(my_time AS DECIMAL),
+SELECT CAST(my_time AS DECIMAL(37,2)),
my_time, id FROM t1_values
WHERE select_id = 69 OR select_id IS NULL order by id;
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
--8385959 -838:59:59 2
-8385959 838:59:59 3
-130000 13:00:00 4
-100000 10:00:00 5
+-8385959.00 -838:59:59 2
+8385959.00 838:59:59 3
+130000.00 13:00:00 4
+100000.00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal) AS `CAST(my_time AS DECIMAL)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 69 OR select_id IS NULL) order by id;
-CAST(my_time AS DECIMAL) my_time id
+CAST(my_time AS DECIMAL(37,2)) my_time id
NULL NULL 1
--8385959 -838:59:59 2
-8385959 838:59:59 3
-130000 13:00:00 4
-100000 10:00:00 5
+-8385959.00 -838:59:59 2
+8385959.00 838:59:59 3
+130000.00 13:00:00 4
+100000.00 10:00:00 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values;
-SELECT CAST(my_timestamp AS DECIMAL),
+SELECT CAST(my_timestamp AS DECIMAL(37,2)),
my_timestamp, id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL order by id;
-CAST(my_timestamp AS DECIMAL) my_timestamp id
-0 0000-00-00 00:00:00 1
-9999999999 1970-01-01 03:00:01 2
-9999999999 2038-01-01 02:59:59 3
-9999999999 2004-02-29 23:59:59 4
-9999999999 2005-06-28 10:00:00 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
+0.00 0000-00-00 00:00:00 1
+19700101030001.00 1970-01-01 03:00:01 2
+20380101025959.00 2038-01-01 02:59:59 3
+20040229235959.00 2004-02-29 23:59:59 4
+20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal) AS `CAST(my_timestamp AS DECIMAL)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 68 OR select_id IS NULL) order by id;
-CAST(my_timestamp AS DECIMAL) my_timestamp id
-0 0000-00-00 00:00:00 1
-9999999999 1970-01-01 03:00:01 2
-9999999999 2038-01-01 02:59:59 3
-9999999999 2004-02-29 23:59:59 4
-9999999999 2005-06-28 10:00:00 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_timestamp AS DECIMAL)' at row 1
+CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id
+0.00 0000-00-00 00:00:00 1
+19700101030001.00 1970-01-01 03:00:01 2
+20380101025959.00 2038-01-01 02:59:59 3
+20040229235959.00 2004-02-29 23:59:59 4
+20050628100000.00 2005-06-28 10:00:00 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values;
-SELECT CAST(my_date AS DECIMAL),
+SELECT CAST(my_date AS DECIMAL(37,2)),
my_date, id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL order by id;
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
-10101 0001-01-01 2
-99991231 9999-12-31 3
-20040229 2004-02-29 4
-20050628 2005-06-28 5
+10101.00 0001-01-01 2
+99991231.00 9999-12-31 3
+20040229.00 2004-02-29 4
+20050628.00 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal) AS `CAST(my_date AS DECIMAL)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 67 OR select_id IS NULL) order by id;
-CAST(my_date AS DECIMAL) my_date id
+CAST(my_date AS DECIMAL(37,2)) my_date id
NULL NULL 1
-10101 0001-01-01 2
-99991231 9999-12-31 3
-20040229 2004-02-29 4
-20050628 2005-06-28 5
+10101.00 0001-01-01 2
+99991231.00 9999-12-31 3
+20040229.00 2004-02-29 4
+20050628.00 2005-06-28 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values;
-SELECT CAST(my_datetime AS DECIMAL),
+SELECT CAST(my_datetime AS DECIMAL(37,2)),
my_datetime, id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL order by id;
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
-9999999999 0001-01-01 00:00:00 2
-9999999999 9999-12-31 23:59:59 3
-9999999999 2004-02-29 23:59:59 4
-9999999999 2005-06-28 10:00:00 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
+10101000000.00 0001-01-01 00:00:00 2
+99991231235959.00 9999-12-31 23:59:59 3
+20040229235959.00 2004-02-29 23:59:59 4
+20050628100000.00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal) AS `CAST(my_datetime AS DECIMAL)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 66 OR select_id IS NULL) order by id;
-CAST(my_datetime AS DECIMAL) my_datetime id
+CAST(my_datetime AS DECIMAL(37,2)) my_datetime id
NULL NULL 1
-9999999999 0001-01-01 00:00:00 2
-9999999999 9999-12-31 23:59:59 3
-9999999999 2004-02-29 23:59:59 4
-9999999999 2005-06-28 10:00:00 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_datetime AS DECIMAL)' at row 1
+10101000000.00 0001-01-01 00:00:00 2
+99991231235959.00 9999-12-31 23:59:59 3
+20040229235959.00 2004-02-29 23:59:59 4
+20050628100000.00 2005-06-28 10:00:00 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_double AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_double AS DECIMAL(37,2)),
my_double, id FROM t1_values;
-SELECT CAST(my_double AS DECIMAL),
+SELECT CAST(my_double AS DECIMAL(37,2)),
my_double, id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL order by id;
-CAST(my_double AS DECIMAL) my_double id
+CAST(my_double AS DECIMAL(37,2)) my_double id
NULL NULL 1
--9999999999 -1.7976931348623e+308 2
-9999999999 1.7976931348623e+308 3
-0 0 4
--1 -1 5
--3333 -3333.3333 30
+-99999999999999999999999999999999999.99 -1.7976931348623e+308 2
+99999999999999999999999999999999999.99 1.7976931348623e+308 3
+0.00 0 4
+-1.00 -1 5
+-3333.33 -3333.3333 30
Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
-Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL)' at row 1
+Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL(37,2))' at row 1
Error 1292 Truncated incorrect DECIMAL value: ''
-Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL)' at row 1
+Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL(37,2))' at row 1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as decimal) AS `CAST(my_double AS DECIMAL)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as decimal(37,2)) AS `CAST(my_double AS DECIMAL(37,2))`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 65 OR select_id IS NULL) order by id;
-CAST(my_double AS DECIMAL) my_double id
+CAST(my_double AS DECIMAL(37,2)) my_double id
NULL NULL 1
--9999999999 -1.7976931348623e+308 2
-9999999999 1.7976931348623e+308 3
-0 0 4
--1 -1 5
--3333 -3333.3333 30
+-99999999999999999999999999999999999.99 -1.7976931348623e+308 2
+99999999999999999999999999999999999.99 1.7976931348623e+308 3
+0.00 0 4
+-1.00 -1 5
+-3333.33 -3333.3333 30
Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
-Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL)' at row 1
+Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL(37,2))' at row 1
Error 1292 Truncated incorrect DECIMAL value: ''
-Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL)' at row 1
+Error 1264 Out of range value for column 'CAST(my_double AS DECIMAL(37,2))' at row 1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values;
-SELECT CAST(my_decimal AS DECIMAL),
+SELECT CAST(my_decimal AS DECIMAL(37,2)),
my_decimal, id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL order by id;
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
--9999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
-9999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
-0 0.000000000000000000000000000000 4
--1 -1.000000000000000000000000000000 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_decimal AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_decimal AS DECIMAL)' at row 1
+-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
+10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.00 0.000000000000000000000000000000 4
+-1.00 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal) AS `CAST(my_decimal AS DECIMAL)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 64 OR select_id IS NULL) order by id;
-CAST(my_decimal AS DECIMAL) my_decimal id
+CAST(my_decimal AS DECIMAL(37,2)) my_decimal id
NULL NULL 1
--9999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2
-9999999999 9999999999999999999999999999999999.999999999999999999999999999999 3
-0 0.000000000000000000000000000000 4
--1 -1.000000000000000000000000000000 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_decimal AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_decimal AS DECIMAL)' at row 1
+-10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2
+10000000000000000000000000000000000.00 9999999999999999999999999999999999.999999999999999999999999999999 3
+0.00 0.000000000000000000000000000000 4
+-1.00 -1.000000000000000000000000000000 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values;
-SELECT CAST(my_bigint AS DECIMAL),
+SELECT CAST(my_bigint AS DECIMAL(37,2)),
my_bigint, id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL order by id;
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
--9999999999 -9223372036854775808 2
-9999999999 9223372036854775807 3
-0 0 4
--1 -1 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_bigint AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_bigint AS DECIMAL)' at row 1
+-9223372036854775808.00 -9223372036854775808 2
+9223372036854775807.00 9223372036854775807 3
+0.00 0 4
+-1.00 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal) AS `CAST(my_bigint AS DECIMAL)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 63 OR select_id IS NULL) order by id;
-CAST(my_bigint AS DECIMAL) my_bigint id
+CAST(my_bigint AS DECIMAL(37,2)) my_bigint id
NULL NULL 1
--9999999999 -9223372036854775808 2
-9999999999 9223372036854775807 3
-0 0 4
--1 -1 5
-Warnings:
-Error 1264 Out of range value for column 'CAST(my_bigint AS DECIMAL)' at row 1
-Error 1264 Out of range value for column 'CAST(my_bigint AS DECIMAL)' at row 1
+-9223372036854775808.00 -9223372036854775808 2
+9223372036854775807.00 9223372036854775807 3
+0.00 0 4
+-1.00 -1 5
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values;
-SELECT CAST(my_varbinary_1000 AS DECIMAL),
+SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)),
my_varbinary_1000, id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL order by id;
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
-0 2
-0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 29
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 29
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal) AS `CAST(my_varbinary_1000 AS DECIMAL)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 62 OR select_id IS NULL) order by id;
-CAST(my_varbinary_1000 AS DECIMAL) my_varbinary_1000 id
+CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id
NULL NULL 1
-0 2
-0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 29
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 29
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
@@ -3420,18 +3302,18 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values;
-SELECT CAST(my_binary_30 AS DECIMAL),
+SELECT CAST(my_binary_30 AS DECIMAL(37,2)),
my_binary_30, id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL order by id;
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
-0
-0 <--------30 characters-------> 3
-0 ---äÖüß@µ*$--
--1 -1
--3333 -3333.3333
+0.00
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$--
+-1.00 -1
+-3333.33 -3333.3333
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ''
@@ -3442,18 +3324,18 @@ Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
Warning 1292 Truncated incorrect DECIMAL value: '-1'
Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal) AS `CAST(my_binary_30 AS DECIMAL)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 61 OR select_id IS NULL) order by id;
-CAST(my_binary_30 AS DECIMAL) my_binary_30 id
+CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id
NULL NULL 1
-0
-0 <--------30 characters-------> 3
-0 ---äÖüß@µ*$--
--1 -1
--3333 -3333.3333
+0.00
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$--
+-1.00 -1
+-3333.33 -3333.3333
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ''
@@ -3466,35 +3348,35 @@ Warning 1292 Truncated incorrect DECIMAL value: '-3333.3333'
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values;
-SELECT CAST(my_varchar_1000 AS DECIMAL),
+SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)),
my_varchar_1000, id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL order by id;
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
-0 2
-0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 27
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 27
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal) AS `CAST(my_varchar_1000 AS DECIMAL)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 60 OR select_id IS NULL) order by id;
-CAST(my_varchar_1000 AS DECIMAL) my_varchar_1000 id
+CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id
NULL NULL 1
-0 2
-0 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 27
+0.00 2
+0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 27
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Error 1366 Incorrect decimal value: '' for column '' at row -1
@@ -3502,18 +3384,18 @@ Error 1366 Incorrect decimal value: '' for column '' at row -1
DROP VIEW v1;
-CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL),
+CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values;
-SELECT CAST(my_char_30 AS DECIMAL),
+SELECT CAST(my_char_30 AS DECIMAL(37,2)),
my_char_30, id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL order by id;
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
-0 2
-0 <--------30 characters-------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 26
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 26
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' '
@@ -3522,18 +3404,18 @@ Warning 1292 Truncated incorrect DECIMAL value: '<--------30 characters------->'
Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal) AS `CAST(my_char_30 AS DECIMAL)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 59 OR select_id IS NULL) order by id;
-CAST(my_char_30 AS DECIMAL) my_char_30 id
+CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id
NULL NULL 1
-0 2
-0 <--------30 characters-------> 3
-0 ---äÖüß@µ*$-- 4
--1 -1 5
--3333 -3333.3333 26
+0.00 2
+0.00 <--------30 characters-------> 3
+0.00 ---äÖüß@µ*$-- 4
+-1.00 -1 5
+-3333.33 -3333.3333 26
Warnings:
Error 1366 Incorrect decimal value: '' for column '' at row -1
Warning 1292 Truncated incorrect DECIMAL value: ' '
@@ -3556,8 +3438,8 @@ NULL NULL 1
00:20:00 2000 4
00:20:05 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as time) AS `CAST(my_year AS TIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as time) AS `CAST(my_year AS TIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 58 OR select_id IS NULL) order by id;
@@ -3582,8 +3464,8 @@ NULL NULL 1
13:00:00 13:00:00 4
10:00:00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as time) AS `CAST(my_time AS TIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as time) AS `CAST(my_time AS TIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 57 OR select_id IS NULL) order by id;
@@ -3608,8 +3490,8 @@ CAST(my_timestamp AS TIME) my_timestamp id
23:59:59 2004-02-29 23:59:59 4
10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as time) AS `CAST(my_timestamp AS TIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as time) AS `CAST(my_timestamp AS TIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 56 OR select_id IS NULL) order by id;
@@ -3634,8 +3516,8 @@ NULL NULL 1
00:00:00 2004-02-29 4
00:00:00 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as time) AS `CAST(my_date AS TIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as time) AS `CAST(my_date AS TIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 55 OR select_id IS NULL) order by id;
@@ -3660,8 +3542,8 @@ NULL NULL 1
23:59:59 2004-02-29 23:59:59 4
10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as time) AS `CAST(my_datetime AS TIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as time) AS `CAST(my_datetime AS TIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 54 OR select_id IS NULL) order by id;
@@ -3690,8 +3572,8 @@ Warnings:
Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308'
Warning 1292 Truncated incorrect time value: '1.7976931348623e+308'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as time) AS `CAST(my_double AS TIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as time) AS `CAST(my_double AS TIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 53 OR select_id IS NULL) order by id;
@@ -3724,8 +3606,8 @@ Warnings:
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
Warning 1292 Truncated incorrect time value: '9223372036854775807'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as time) AS `CAST(my_bigint AS TIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as time) AS `CAST(my_bigint AS TIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 52 OR select_id IS NULL) order by id;
@@ -3759,8 +3641,8 @@ Warning 1292 Truncated incorrect time value: ''
Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as time) AS `CAST(my_varbinary_1000 AS TIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as time) AS `CAST(my_varbinary_1000 AS TIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 51 OR select_id IS NULL) order by id;
@@ -3797,8 +3679,8 @@ Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
Warning 1292 Truncated incorrect time value: '-1'
Warning 1292 Truncated incorrect time value: '1 17:58'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as time) AS `CAST(my_binary_30 AS TIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as time) AS `CAST(my_binary_30 AS TIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 50 OR select_id IS NULL) order by id;
@@ -3835,8 +3717,8 @@ Warning 1292 Truncated incorrect time value: ''
Warning 1292 Truncated incorrect time value: '<---------1000 characters-------------------------------------------------------------------------------------------------------'
Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$-- '
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as time) AS `CAST(my_varchar_1000 AS TIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as time) AS `CAST(my_varchar_1000 AS TIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 49 OR select_id IS NULL) order by id;
@@ -3871,8 +3753,8 @@ Warning 1292 Truncated incorrect time value: ''
Warning 1292 Truncated incorrect time value: '<--------30 characters------->'
Warning 1292 Truncated incorrect time value: ' ---äÖüß@µ*$--'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as time) AS `CAST(my_char_30 AS TIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as time) AS `CAST(my_char_30 AS TIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 48 OR select_id IS NULL) order by id;
@@ -3907,8 +3789,8 @@ Warning 1292 Incorrect datetime value: '2155'
Warning 1292 Incorrect datetime value: '2000'
Warning 1292 Incorrect datetime value: '2005'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as datetime) AS `CAST(my_year AS DATETIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as datetime) AS `CAST(my_year AS DATETIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 47 OR select_id IS NULL) order by id;
@@ -3941,8 +3823,8 @@ Warnings:
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
Warning 1292 Incorrect datetime value: '0000-00-00 838:59:59'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 46 OR select_id IS NULL) order by id;
@@ -3970,8 +3852,8 @@ CAST(my_timestamp AS DATETIME) my_timestamp id
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as datetime) AS `CAST(my_timestamp AS DATETIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as datetime) AS `CAST(my_timestamp AS DATETIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 45 OR select_id IS NULL) order by id;
@@ -3996,8 +3878,8 @@ NULL NULL 1
2004-02-29 00:00:00 2004-02-29 4
2005-06-28 00:00:00 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as datetime) AS `CAST(my_date AS DATETIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as datetime) AS `CAST(my_date AS DATETIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 44 OR select_id IS NULL) order by id;
@@ -4022,8 +3904,8 @@ NULL NULL 1
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as datetime) AS `CAST(my_datetime AS DATETIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as datetime) AS `CAST(my_datetime AS DATETIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 43 OR select_id IS NULL) order by id;
@@ -4055,8 +3937,8 @@ Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '-1'
Warning 1292 Incorrect datetime value: '200506271758'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as datetime) AS `CAST(my_double AS DATETIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as datetime) AS `CAST(my_double AS DATETIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 42 OR select_id IS NULL) order by id;
@@ -4095,8 +3977,8 @@ Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '-1'
Warning 1292 Incorrect datetime value: '200506271758'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as datetime) AS `CAST(my_bigint AS DATETIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as datetime) AS `CAST(my_bigint AS DATETIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 41 OR select_id IS NULL) order by id;
@@ -4134,8 +4016,8 @@ Warning 1292 Incorrect datetime value: '<---------1000 characters---------------
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as datetime) AS `CAST(my_varbinary_1000 AS DATETIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as datetime) AS `CAST(my_varbinary_1000 AS DATETIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 40 OR select_id IS NULL) order by id;
@@ -4173,8 +4055,8 @@ Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
Warning 1292 Truncated incorrect datetime value: '2005-06-27 17:58'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as datetime) AS `CAST(my_binary_30 AS DATETIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as datetime) AS `CAST(my_binary_30 AS DATETIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 39 OR select_id IS NULL) order by id;
@@ -4212,8 +4094,8 @@ Warning 1292 Incorrect datetime value: '<---------1000 characters---------------
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as datetime) AS `CAST(my_varchar_1000 AS DATETIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as datetime) AS `CAST(my_varchar_1000 AS DATETIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 38 OR select_id IS NULL) order by id;
@@ -4250,8 +4132,8 @@ Warning 1292 Incorrect datetime value: '<--------30 characters------->'
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$--'
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as datetime) AS `CAST(my_char_30 AS DATETIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as datetime) AS `CAST(my_char_30 AS DATETIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 37 OR select_id IS NULL) order by id;
@@ -4287,8 +4169,8 @@ Warning 1292 Incorrect datetime value: '2155'
Warning 1292 Incorrect datetime value: '2000'
Warning 1292 Incorrect datetime value: '2005'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as date) AS `CAST(my_year AS DATE)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as date) AS `CAST(my_year AS DATE)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 36 OR select_id IS NULL) order by id;
@@ -4318,8 +4200,8 @@ NULL NULL 1
0000-00-00 13:00:00 4
0000-00-00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as date) AS `CAST(my_time AS DATE)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as date) AS `CAST(my_time AS DATE)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 35 OR select_id IS NULL) order by id;
@@ -4344,8 +4226,8 @@ CAST(my_timestamp AS DATE) my_timestamp id
2004-02-29 2004-02-29 23:59:59 4
2005-06-28 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as date) AS `CAST(my_timestamp AS DATE)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as date) AS `CAST(my_timestamp AS DATE)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 34 OR select_id IS NULL) order by id;
@@ -4370,8 +4252,8 @@ NULL NULL 1
2004-02-29 2004-02-29 4
2005-06-28 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as date) AS `CAST(my_date AS DATE)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as date) AS `CAST(my_date AS DATE)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 33 OR select_id IS NULL) order by id;
@@ -4396,8 +4278,8 @@ NULL NULL 1
2004-02-29 2004-02-29 23:59:59 4
2005-06-28 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as date) AS `CAST(my_datetime AS DATE)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as date) AS `CAST(my_datetime AS DATE)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 32 OR select_id IS NULL) order by id;
@@ -4428,8 +4310,8 @@ Warning 1292 Incorrect datetime value: '1.7976931348623e+308'
Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as date) AS `CAST(my_double AS DATE)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as date) AS `CAST(my_double AS DATE)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 31 OR select_id IS NULL) order by id;
@@ -4466,8 +4348,8 @@ Warning 1292 Incorrect datetime value: '9223372036854775807'
Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as date) AS `CAST(my_bigint AS DATE)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as date) AS `CAST(my_bigint AS DATE)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 30 OR select_id IS NULL) order by id;
@@ -4504,8 +4386,8 @@ Warning 1292 Incorrect datetime value: '<---------1000 characters---------------
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as date) AS `CAST(my_varbinary_1000 AS DATE)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as date) AS `CAST(my_varbinary_1000 AS DATE)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 29 OR select_id IS NULL) order by id;
@@ -4543,8 +4425,8 @@ Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
Warning 1292 Truncated incorrect date value: '2005-06-27'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as date) AS `CAST(my_binary_30 AS DATE)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as date) AS `CAST(my_binary_30 AS DATE)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 28 OR select_id IS NULL) order by id;
@@ -4582,8 +4464,8 @@ Warning 1292 Incorrect datetime value: '<---------1000 characters---------------
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$-- '
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as date) AS `CAST(my_varchar_1000 AS DATE)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as date) AS `CAST(my_varchar_1000 AS DATE)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 27 OR select_id IS NULL) order by id;
@@ -4620,8 +4502,8 @@ Warning 1292 Incorrect datetime value: '<--------30 characters------->'
Warning 1292 Incorrect datetime value: ' ---äÖüß@µ*$--'
Warning 1292 Incorrect datetime value: '-1'
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as date) AS `CAST(my_char_30 AS DATE)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as date) AS `CAST(my_char_30 AS DATE)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 26 OR select_id IS NULL) order by id;
@@ -4652,8 +4534,8 @@ NULL NULL 1
2000 2000 4
2005 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset latin1) AS `CAST(my_year AS CHAR)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset latin1) AS `CAST(my_year AS CHAR)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 25 OR select_id IS NULL) order by id;
@@ -4678,8 +4560,8 @@ NULL NULL 1
13:00:00 13:00:00 4
10:00:00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset latin1) AS `CAST(my_time AS CHAR)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset latin1) AS `CAST(my_time AS CHAR)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 24 OR select_id IS NULL) order by id;
@@ -4704,8 +4586,8 @@ CAST(my_timestamp AS CHAR) my_timestamp id
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset latin1) AS `CAST(my_timestamp AS CHAR)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset latin1) AS `CAST(my_timestamp AS CHAR)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 23 OR select_id IS NULL) order by id;
@@ -4730,8 +4612,8 @@ NULL NULL 1
2004-02-29 2004-02-29 4
2005-06-28 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset latin1) AS `CAST(my_date AS CHAR)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset latin1) AS `CAST(my_date AS CHAR)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 22 OR select_id IS NULL) order by id;
@@ -4756,8 +4638,8 @@ NULL NULL 1
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset latin1) AS `CAST(my_datetime AS CHAR)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset latin1) AS `CAST(my_datetime AS CHAR)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 21 OR select_id IS NULL) order by id;
@@ -4782,8 +4664,8 @@ NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset latin1) AS `CAST(my_double AS CHAR)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset latin1) AS `CAST(my_double AS CHAR)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 20 OR select_id IS NULL) order by id;
@@ -4808,8 +4690,8 @@ NULL NULL 1
0.000000000000000000000000000000 0.000000000000000000000000000000 4
-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset latin1) AS `CAST(my_decimal AS CHAR)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset latin1) AS `CAST(my_decimal AS CHAR)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 19 OR select_id IS NULL) order by id;
@@ -4834,8 +4716,8 @@ NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset latin1) AS `CAST(my_bigint AS CHAR)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset latin1) AS `CAST(my_bigint AS CHAR)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 18 OR select_id IS NULL) order by id;
@@ -4860,8 +4742,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset latin1) AS `CAST(my_varbinary_1000 AS CHAR)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset latin1) AS `CAST(my_varbinary_1000 AS CHAR)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 17 OR select_id IS NULL) order by id;
@@ -4886,8 +4768,8 @@ NULL NULL 1
---äÖüß@µ*$--
-1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset latin1) AS `CAST(my_binary_30 AS CHAR)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset latin1) AS `CAST(my_binary_30 AS CHAR)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 16 OR select_id IS NULL) order by id;
@@ -4912,8 +4794,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset latin1) AS `CAST(my_varchar_1000 AS CHAR)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset latin1) AS `CAST(my_varchar_1000 AS CHAR)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 15 OR select_id IS NULL) order by id;
@@ -4938,8 +4820,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset latin1) AS `CAST(my_char_30 AS CHAR)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset latin1) AS `CAST(my_char_30 AS CHAR)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 14 OR select_id IS NULL) order by id;
@@ -4964,8 +4846,8 @@ NULL NULL 1
2000 2000 4
2005 2005 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset binary) AS `CAST(my_year AS BINARY)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset binary) AS `CAST(my_year AS BINARY)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 13 OR select_id IS NULL) order by id;
@@ -4990,8 +4872,8 @@ NULL NULL 1
13:00:00 13:00:00 4
10:00:00 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset binary) AS `CAST(my_time AS BINARY)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset binary) AS `CAST(my_time AS BINARY)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 12 OR select_id IS NULL) order by id;
@@ -5016,8 +4898,8 @@ CAST(my_timestamp AS BINARY) my_timestamp id
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset binary) AS `CAST(my_timestamp AS BINARY)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset binary) AS `CAST(my_timestamp AS BINARY)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 11 OR select_id IS NULL) order by id;
@@ -5042,8 +4924,8 @@ NULL NULL 1
2004-02-29 2004-02-29 4
2005-06-28 2005-06-28 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset binary) AS `CAST(my_date AS BINARY)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset binary) AS `CAST(my_date AS BINARY)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 10 OR select_id IS NULL) order by id;
@@ -5068,8 +4950,8 @@ NULL NULL 1
2004-02-29 23:59:59 2004-02-29 23:59:59 4
2005-06-28 10:00:00 2005-06-28 10:00:00 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset binary) AS `CAST(my_datetime AS BINARY)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset binary) AS `CAST(my_datetime AS BINARY)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 9 OR select_id IS NULL) order by id;
@@ -5094,8 +4976,8 @@ NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset binary) AS `CAST(my_double AS BINARY)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset binary) AS `CAST(my_double AS BINARY)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 8 OR select_id IS NULL) order by id;
@@ -5120,8 +5002,8 @@ NULL NULL 1
0.000000000000000000000000000000 0.000000000000000000000000000000 4
-1.000000000000000000000000000000 -1.000000000000000000000000000000 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset binary) AS `CAST(my_decimal AS BINARY)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset binary) AS `CAST(my_decimal AS BINARY)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 7 OR select_id IS NULL) order by id;
@@ -5146,8 +5028,8 @@ NULL NULL 1
0 0 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset binary) AS `CAST(my_bigint AS BINARY)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset binary) AS `CAST(my_bigint AS BINARY)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 6 OR select_id IS NULL) order by id;
@@ -5172,8 +5054,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset binary) AS `CAST(my_varbinary_1000 AS BINARY)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset binary) AS `CAST(my_varbinary_1000 AS BINARY)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 5 OR select_id IS NULL) order by id;
@@ -5198,8 +5080,8 @@ NULL NULL 1
---äÖüß@µ*$--
-1
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset binary) AS `CAST(my_binary_30 AS BINARY)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset binary) AS `CAST(my_binary_30 AS BINARY)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 4 OR select_id IS NULL) order by id;
@@ -5224,8 +5106,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset binary) AS `CAST(my_varchar_1000 AS BINARY)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset binary) AS `CAST(my_varchar_1000 AS BINARY)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 3 OR select_id IS NULL) order by id;
@@ -5250,8 +5132,8 @@ NULL NULL 1
---äÖüß@µ*$-- ---äÖüß@µ*$-- 4
-1 -1 5
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset binary) AS `CAST(my_char_30 AS BINARY)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset binary) AS `CAST(my_char_30 AS BINARY)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 2 OR select_id IS NULL) order by id;
@@ -5276,8 +5158,8 @@ NULL -1 5
2 4 6
NULL -25 7
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sqrt(`t1_values`.`my_bigint`) AS `sqrt(my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sqrt(`t1_values`.`my_bigint`) AS `sqrt(my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` latin1 latin1_swedish_ci
SELECT v1.* FROM v1
WHERE v1.id IN (SELECT id FROM t1_values
WHERE select_id = 1 OR select_id IS NULL) order by id;
diff --git a/mysql-test/suite/funcs_1/r/ndb_storedproc_07.result b/mysql-test/suite/funcs_1/r/ndb_storedproc_07.result
index 653baa95ab4..bf2299c2f30 100644
--- a/mysql-test/suite/funcs_1/r/ndb_storedproc_07.result
+++ b/mysql-test/suite/funcs_1/r/ndb_storedproc_07.result
@@ -90,7 +90,7 @@ INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
END if;
END//
SHOW CREATE PROCEDURE sp1;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
BEGIN
declare a tinyint;
@@ -104,7 +104,7 @@ INSERT INTO result VALUES (@cur_val_sql_mode, 'value restored');
ELSE
INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
END if;
-END
+END latin1 latin1_swedish_ci latin1_swedish_ci
set @@sql_mode='';
SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value
@@ -143,12 +143,12 @@ SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode';
END//
SHOW CREATE PROCEDURE sp2;
-Procedure sql_mode Create Procedure
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
BEGIN
SET @@sql_mode='MAXDB';
SHOW VARIABLES LIKE 'sql_mode';
-END
+END latin1 latin1_swedish_ci latin1_swedish_ci
... show value prior calling procedure
SHOW VARIABLES LIKE 'sql_mode';
Variable_name Value
diff --git a/mysql-test/suite/funcs_1/r/ndb_storedproc_08.result b/mysql-test/suite/funcs_1/r/ndb_storedproc_08.result
index 69830831843..2c7dcee6a09 100644
--- a/mysql-test/suite/funcs_1/r/ndb_storedproc_08.result
+++ b/mysql-test/suite/funcs_1/r/ndb_storedproc_08.result
@@ -122,6 +122,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME fn_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -146,6 +149,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT created with INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_1
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -168,6 +174,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -190,6 +199,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT created with INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SHOW CREATE FUNCTION fn_1;
Function fn_1
sql_mode
@@ -199,6 +211,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE FUNCTION fn_2;
Function fn_2
sql_mode
@@ -210,6 +225,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_1;
Procedure sp_1
sql_mode
@@ -217,6 +235,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_2;
Procedure sp_2
sql_mode
@@ -226,6 +247,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW FUNCTION STATUS LIKE 'fn_%';
Db db_storedproc
Name fn_1
@@ -235,6 +259,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name fn_2
Type FUNCTION
@@ -243,6 +270,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment created with INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW PROCEDURE STATUS LIKE 'sp_%';
Db db_storedproc
Name sp_1
@@ -252,6 +282,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name sp_2
Type PROCEDURE
@@ -260,6 +293,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment created with INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
... now change some stuff:
--------------------------
@@ -304,6 +340,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT new comment, FN changed to INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME fn_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -328,6 +367,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT FN changed to DEFINER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_1
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -350,6 +392,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT new comment, SP changed to INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -372,6 +417,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT SP changed to DEFINER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SHOW CREATE FUNCTION fn_1;
Function fn_1
sql_mode
@@ -384,6 +432,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE FUNCTION fn_2;
Function fn_2
sql_mode
@@ -395,6 +446,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_1;
Procedure sp_1
sql_mode
@@ -404,6 +458,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_2;
Procedure sp_2
sql_mode
@@ -413,6 +470,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW FUNCTION STATUS LIKE 'fn_%';
Db db_storedproc
Name fn_1
@@ -422,6 +482,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment new comment, FN changed to INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name fn_2
Type FUNCTION
@@ -430,6 +493,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment FN changed to DEFINER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW PROCEDURE STATUS LIKE 'sp_%';
Db db_storedproc
Name sp_1
@@ -439,6 +505,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment new comment, SP changed to INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name sp_2
Type PROCEDURE
@@ -447,6 +516,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment SP changed to DEFINER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
... change back to default and check result:
--------------------------------------------
@@ -479,6 +551,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT new comment, FN changed to INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME fn_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -503,6 +578,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT FN changed to DEFINER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_1
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -525,6 +603,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT new comment, SP changed to INVOKER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SPECIFIC_NAME sp_2
ROUTINE_CATALOG NULL
ROUTINE_SCHEMA db_storedproc
@@ -547,6 +628,9 @@ LAST_ALTERED <created>
SQL_MODE
ROUTINE_COMMENT SP changed to DEFINER
DEFINER root@localhost
+CHARACTER_SET_CLIENT latin1
+COLLATION_CONNECTION latin1_swedish_ci
+DATABASE_COLLATION latin1_swedish_ci
SHOW CREATE FUNCTION fn_1;
Function fn_1
sql_mode
@@ -559,6 +643,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE FUNCTION fn_2;
Function fn_2
sql_mode
@@ -569,6 +656,9 @@ set @x=i1;
set @y=@x;
return i4;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_1;
Procedure sp_1
sql_mode
@@ -578,6 +668,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW CREATE PROCEDURE sp_2;
Procedure sp_2
sql_mode
@@ -587,6 +680,9 @@ Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
BEGIN
set @x=i1;
END
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW FUNCTION STATUS LIKE 'fn_%';
Db db_storedproc
Name fn_1
@@ -596,6 +692,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment new comment, FN changed to INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name fn_2
Type FUNCTION
@@ -604,6 +703,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment FN changed to DEFINER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
SHOW PROCEDURE STATUS LIKE 'sp_%';
Db db_storedproc
Name sp_1
@@ -613,6 +715,9 @@ Modified <modified>
Created <created>
Security_type INVOKER
Comment new comment, SP changed to INVOKER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
Db db_storedproc
Name sp_2
Type PROCEDURE
@@ -621,6 +726,9 @@ Modified <modified>
Created <created>
Security_type DEFINER
Comment SP changed to DEFINER
+character_set_client latin1
+collation_connection latin1_swedish_ci
+Database Collation latin1_swedish_ci
... cleanup
-----------
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_0102.result b/mysql-test/suite/funcs_1/r/ndb_trig_0102.result
index 0157151e8be..33deedd4b37 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_0102.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_0102.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase: 3.5.1.1:
@@ -243,7 +243,7 @@ create table t1 (f1 integer) engine = ndb;
use test;
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
for each row set @ret_trg6_2 = 5;
-ERROR HY000: Trigger in wrong schema
+ERROR 42S02: Table 'trig_db.tb3' doesn't exist
use trig_db;
CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
for each row set @ret_trg6_3 = 18;
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_03.result b/mysql-test/suite/funcs_1/r/ndb_trig_03.result
index f046b5a0bc4..35d1e341e8d 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_03.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_03.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase 3.5.3:
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_03e.result b/mysql-test/suite/funcs_1/r/ndb_trig_03e.result
index ef24e298dad..505d2ed9f07 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_03e.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_03e.result
@@ -263,7 +263,7 @@ select current_user;
current_user
root@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
grant select, insert, update on priv_db.t1 to test_yesprivs@localhost;
show grants for test_yesprivs@localhost;
Grants for test_yesprivs@localhost
@@ -296,7 +296,7 @@ select current_user;
current_user
root@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
show tables;
Tables_in_priv_db
t1
@@ -317,7 +317,7 @@ select current_user;
current_user
test_yesprivs@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-yes';
select current_user;
@@ -453,9 +453,9 @@ ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for tabl
create trigger trg1_4 before UPDATE on t1 for each row
set new.f1 = 'trig 1_4-yes';
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE NULL test_yesprivs@localhost
-trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE NULL test_yesprivs@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE NULL test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
+trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE NULL test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
select current_user;
current_user
test_noprivs@localhost
@@ -570,11 +570,11 @@ current_user
test_yesprivs@localhost
use priv_db;
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
-trg1_1 INSERT t1 set new.f1 = 'trig 1_1-yes' BEFORE NULL test_yesprivs@localhost
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
+trg1_1 INSERT t1 set new.f1 = 'trig 1_1-yes' BEFORE NULL test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
select * from information_schema.triggers;
-TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER
-NULL priv_db trg1_1 INSERT NULL priv_db t1 0 NULL set new.f1 = 'trig 1_1-yes' ROW BEFORE NULL NULL OLD NEW NULL test_yesprivs@localhost
+TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
+NULL priv_db trg1_1 INSERT NULL priv_db t1 0 NULL set new.f1 = 'trig 1_1-yes' ROW BEFORE NULL NULL OLD NEW NULL test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci
drop trigger trg1_1;
ERROR 42000: TRIGGER command denied to user 'test_yesprivs'@'localhost' for table 't1'
select current_user;
@@ -863,7 +863,7 @@ select current_user;
current_user
root@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
grant TRIGGER on priv1_db.t1 to test_yesprivs@localhost;
show grants for test_yesprivs@localhost;
Grants for test_yesprivs@localhost
@@ -878,7 +878,7 @@ select current_user;
current_user
test_yesprivs@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
create trigger trg1_2 before INSERT on t1 for each row
set new.f1 = 'trig 1_2-yes';
create trigger trg2_1 before INSERT on t2 for each row
@@ -990,7 +990,7 @@ select current_user;
current_user
root@localhost
show triggers;
-Trigger Event Table Statement Timing Created sql_mode Definer
+Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
grant select, insert, update ,trigger
on priv_db.t1 to test_yesprivs@localhost
with grant option;
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_0407.result b/mysql-test/suite/funcs_1/r/ndb_trig_0407.result
index de9170048b3..e0c64f7598b 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_0407.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_0407.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase: 3.5:
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_08.result b/mysql-test/suite/funcs_1/r/ndb_trig_08.result
index a60caec0144..5b542a1a4c8 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_08.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_08.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase: 3.5:
@@ -493,9 +493,8 @@ BEGIN
WHILE @counter1 < new.f136
SET @counter1 = @counter1 + 1;
END//
-ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHILE @counter1 < new.f136
-SET @counter1 = @counter1 + 1;
-END' at line 3
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1;
+END' at line 4
delete from tb3 where f122='Test 3.5.8.5-while';
drop trigger trg7;
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_09.result b/mysql-test/suite/funcs_1/r/ndb_trig_09.result
index 3c5a9526752..6cb05a1d3ff 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_09.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_09.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase 3.5.9.1/2:
diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result
index b6853469d4f..3d9db02a375 100644
--- a/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result
+++ b/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result
@@ -65,7 +65,7 @@ Warnings:
Note 1265 Data truncated for column 'f150' at row 1
Note 1265 Data truncated for column 'f151' at row 1
Note 1265 Data truncated for column 'f152' at row 1
-Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ;
Testcase 3.5.10.1/2/3:
diff --git a/mysql-test/suite/funcs_1/r/ndb_views.result b/mysql-test/suite/funcs_1/r/ndb_views.result
index a8dba47ac6e..73efd3309f9 100644
--- a/mysql-test/suite/funcs_1/r/ndb_views.result
+++ b/mysql-test/suite/funcs_1/r/ndb_views.result
@@ -53,7 +53,7 @@ f106 year(3) not null default 2000,
f107 year(4) not null default 2000,
f108 enum("1enum","2enum") not null default "1enum",
f109 set("1set","2set") not null default "1set"
-) engine = innodb;
+) engine = ndb;
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb2.txt' into table tb2 ;
DROP DATABASE IF EXISTS test1;
CREATE DATABASE test1;
@@ -111,7 +111,7 @@ f106 year(3) not null default 2000,
f107 year(4) not null default 2000,
f108 enum("1enum","2enum") not null default "1enum",
f109 set("1set","2set") not null default "1set"
-) engine = innodb;
+) engine = ndb;
load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb2.txt' into table tb2 ;
USE test;
@@ -184,47 +184,47 @@ Insert into t1 values (500,9866);
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 where f59=250;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60,f61 limit 0,10;
f59 f60 f61
250 87895654 NULL
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
1 1 0000000001
2 2 0000000002
3 3 0000000003
4 4 0000000004
+4 74 NULL
5 5 0000000005
6 6 0000000006
7 7 0000000007
8 8 0000000008
9 9 0000000009
-10 10 0000000010
CREATE or REPLACE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61 limit 0,10;
f59 f60 f61
-5 5 0000000005
-6 6 0000000006
-7 7 0000000007
+10 10 0000000010
+19 18 0000000014
+24 51654 NULL
CREATE or REPLACE VIEW v1 AS select distinct f59
FROM test.tb2 limit 4,3;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-5
-6
-7
+15
+107
+209
ALTER VIEW v1 AS select f59
FROM test.tb2 limit 6,2;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-7
-8
+10
+34
CREATE or REPLACE VIEW v1 AS select f59
from tb2 order by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -266,7 +266,7 @@ f59
660
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -280,7 +280,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 asc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -294,21 +294,21 @@ f59
10
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 desc limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
-569300
-76710
-9112
-7876
-3410
-3330
-2760
-2550
-987
-660
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
union (select f59 from t1) limit 100;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -322,7 +322,7 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION DISTINCT(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
@@ -336,103 +336,103 @@ f59
10
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION ALL(select f59 FROM t1) ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59 limit 0,10;
f59
1
2
3
4
+4
5
6
7
8
9
-10
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH LOCAL CHECK OPTION ;
-select * FROM v1 limit 0,50;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH CASCADED CHECK OPTION ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
-10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
FROM test.tb2 WITH CASCADED CHECK OPTION;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
CREATE or REPLACE VIEW v1 AS select f59, f60
from test.tb2 where f59=3330 ;
-select * FROM v1 limit 0,10;
+select * FROM v1 order by f60 limit 0,10;
f59 f60
3330 764376
DROP VIEW v1 ;
@@ -863,73 +863,73 @@ CREATE TABLE t1 (f1 BIGINT);
INSERT INTO t1 VALUES(1);
CREATE VIEW test.v1 AS SELECT * FROM t1 limit 2;
SHOW CREATE VIEW test.v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` limit 2
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` limit 2 latin1 latin1_swedish_ci
SELECT * FROM test.v1;
f1
1
CREATE OR REPLACE ALGORITHM = TEMPTABLE VIEW test.v1
AS SELECT * FROM t1 limit 2;
SHOW CREATE VIEW test.v1;
-View Create View
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` limit 2
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` limit 2 latin1 latin1_swedish_ci
SELECT * FROM test.v1;
f1
1
-CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2;
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2;
SHOW CREATE VIEW test.v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` limit 2
-SELECT * FROM test.v1 ;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` order by `tb2`.`f59` limit 2 latin1 latin1_swedish_ci
+SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100;
SHOW CREATE VIEW test.v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100
-SELECT * FROM test.v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 latin1 latin1_swedish_ci
+SELECT * FROM test.v1 order by F59;
F59
-76710
-2760
-569300
-660
-250
-340
-3410
-2550
-3330
-441
-24
-323
-34
+1
+2
+4
4
+6
+7
+8
+9
15
22
-394
+27
+29
94
-195
-292
-987
-7876
-321
-9112
-500
-500
-500
107
+107
+109
109
+195
207
209
-27
-29
-17
-19
-107
-109
-299
242
+250
+292
+299
+321
+323
+340
+394
424
+441
+500
+500
+987
+2550
+2760
+3330
+3410
+9112
+76710
+569300
Drop table test.t1 ;
Drop view test.v1 ;
@@ -946,8 +946,8 @@ Drop table if exists test.v1 ;
CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2;
SELECT * FROM test.v1;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
-2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
Drop view test.v1 ;
Testcase 3.3.1.16 + 3.3.1.17
@@ -965,38 +965,38 @@ CREATE TABLE t1 (f1 NUMERIC(15,3));
INSERT INTO t1 VALUES(8.8);
CREATE VIEW v1 AS SELECT * FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
SELECT * FROM v1;
f1
8.800
CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
SELECT * FROM v1;
f1
8.800
CREATE OR REPLACE VIEW v1 AS SELECT f1 As my_column FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `my_column` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `my_column` from `t1` latin1 latin1_swedish_ci
SELECT * FROM v1;
my_column
8.800
CREATE OR REPLACE VIEW v1(column1,column2)
AS SELECT f1 As my_column, f1 FROM t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `column1`,`t1`.`f1` AS `column2` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `column1`,`t1`.`f1` AS `column2` from `t1` latin1 latin1_swedish_ci
SELECT * FROM v1;
column1 column2
8.800 8.800
CREATE OR REPLACE VIEW test.v1(column1,column2)
AS SELECT f1 As my_column, f1 FROM test.t1;
SHOW CREATE VIEW v1;
-View Create View
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `column1`,`t1`.`f1` AS `column2` from `t1`
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `column1`,`t1`.`f1` AS `column2` from `t1` latin1 latin1_swedish_ci
SELECT * FROM v1;
column1 column2
8.800 8.800
@@ -1081,10 +1081,10 @@ Testcase 3.3.1.21
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS v1;
CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59, F60 desc;
F59 F60
1 1
-2 2
+340 9984376
Drop view if exists test.v1 ;
Testcase 3.3.1.22
@@ -1093,8 +1093,8 @@ DROP VIEW IF EXISTS v1;
CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2;
SELECT * FROM test.v1;
product
-1
-4
+9
+25
CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2;
SELECT * FROM test.v1;
product
@@ -1180,8 +1180,8 @@ DROP VIEW IF EXISTS v1;
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Select * from test.v1;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
-2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
Drop view test.v1 ;
Testcase 3.3.1.27
@@ -1190,10 +1190,10 @@ DROP VIEW IF EXISTS test.v1;
Drop VIEW IF EXISTS test.v1_1 ;
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Create view test.v1_1 AS Select F59 from test.v1 ;
-Select * from test.v1_1 limit 20 ;
+Select * from test.v1_1 order by F59 limit 20 ;
F59
1
-2
+340
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1204,58 +1204,58 @@ create database test2 ;
Create view test2.v2 AS Select * from test.tb2 limit 50,50;
use test2 ;
Create view v1 AS Select * from test.tb2 limit 50 ;
-Select * from v1 ;
+Select * from v1 order by f59,f60,f61,f62,f63,f64,f65;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Select * from test2.v2 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
Drop view if exists test2.v1 ;
@@ -1318,18 +1318,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view if exists test.v1_firstview ;
Drop view if exists test.v1_secondview ;
Drop view if exists test.v1 ;
@@ -1347,18 +1347,18 @@ CREATE VIEW v1
AS SELECT test.v1_firstview.F59, test.v1_firstview.F60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
F59 F60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view v1 ;
Drop view test.v1_firstview ;
Drop view test.v1_secondview ;
@@ -1373,18 +1373,18 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.tb2
ON test.v1_firstview.f59 = test.tb2.f59;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop view test.v1 ;
Drop view test.v1_firstview;
@@ -1397,18 +1397,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ;
CREATE VIEW v1
AS SELECT v1_firstview.f59, v1_firstview.f60
FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 4
+4 74
4 74
5 5
6 6
7 7
-8 8
-9 9
Drop database test2 ;
Testcase 3.3.1.37
@@ -1420,18 +1420,18 @@ Drop view if exists test.v1_1 ;
Drop view if exists test.v1_1 ;
Drop view if exists test.v1_main ;
Create view test.v1 as Select f59, f60 FROM test.tb2;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59,f60 limit 0,10;
f59 f60
1 1
2 2
3 3
4 4
+4 74
5 5
6 6
7 7
8 8
9 9
-10 10
Create table t1(f59 int, f60 int);
Insert into t1 values (90,507) ;
Create view v1_1 as Select f59,f60 from t1 ;
@@ -1441,18 +1441,18 @@ f59 f60
Create view v1_main
as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1
ON test.tb2.f59 = test.v1.f59;
-Select * from v1_main limit 0,10;
+Select * from v1_main order by f59 limit 0,10;
f59
1
2
3
4
4
+4
+4
5
6
7
-8
-9
Drop table t1;
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1738,28 +1738,28 @@ Drop view if exists test.v1_main;
Drop view if exists test1.v1_1 ;
Drop database if exists test3 ;
Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ;
-Select * from test.v1 ;
+Select * from test.v1 order by f59,f60;
f59 f60
-1 1
2 2
3 3
-4 4
5 5
6 6
-7 7
-8 8
9 9
10 10
-76710 226546
-2760 985654
-569300 9114376
+17 15
+19 18
+24 51654
+34 41
+107 105
+323 14376
+441 16546
+500 NULL
+500 NULL
660 876546
-250 87895654
-340 9984376
-3410 996546
2550 775654
3330 764376
-441 16546
+3410 996546
+7876 74
Create table test1.t1 (f59 int,f60 int) ;
Insert into test1.t1 values (199,507) ;
Create view test1.v1_1 as Select f59,f60 from test1.t1 ;
@@ -1792,7 +1792,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1
AS Select f59 from (Select * FROM tb2 limit 20) tx ;
ERROR HY000: View's SELECT contains a subquery in the FROM clause
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
ERROR 42S02: Table 'test.v1' doesn't exist
Drop view if exists test.v1 ;
@@ -1873,7 +1873,7 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04;
UPDATE test.v1 SET f59 = 30 where F59 = 04 ;
affected rows: 2
info: Rows matched: 2 Changed: 2 Warnings: 0
-SELECT * FROM test.v1 where f59 = 30 ;
+SELECT * FROM test.v1 where f59 = 30 order by f59;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
SELECT * FROM test.tb2 where f59 = 30 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
@@ -1886,7 +1886,7 @@ SELECT * FROM tb2 where f59 = 100 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
drop view if exists test.v1 ;
Drop TABLE IF EXISTS test.t1 ;
@@ -1962,7 +1962,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60
FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
UPDATE test.v1 SET f59 = 198 where f59=195 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
195 87
drop view if exists test.v1 ;
@@ -1976,7 +1976,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ;
CREATE VIEW test.v2 as SELECT * FROM test.v1 ;
UPDATE test.v1 SET F59 = 919 where f59 = 0987 ;
ERROR HY000: CHECK OPTION failed 'test.v1'
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60
987 41
UPDATE test.v2 SET F59 = 9879 where f59 = 919 ;
@@ -9671,115 +9671,115 @@ Testcase 3.3.1.50 - 3.3.1.53
--------------------------------------------------------------------------------
DROP VIEW IF EXISTS test.v1;
CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
-2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
-3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
-5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
+8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
+15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by F59, F61 ;
F59 F61
1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
7 0000000007
8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
-660 NULL
-250 NULL
-340 NULL
-3410 NULL
-2550 NULL
-3330 NULL
-441 NULL
-24 NULL
-323 NULL
-34 NULL
-100 NULL
15 NULL
+17 0000000016
+19 0000000014
22 NULL
-394 NULL
+24 NULL
+27 0000000026
+29 0000000024
+34 NULL
94 NULL
-195 NULL
-292 NULL
-987 NULL
-7876 NULL
-321 0000000765
-9112 0000008771
-500 0000000900
-500 0000000900
-500 0000000900
+100 NULL
+100 0000000004
+107 0000000106
107 0000000106
109 0000000104
+109 0000000104
+195 NULL
207 0000000206
209 0000000204
-27 0000000026
-29 0000000024
-17 0000000016
-19 0000000014
-107 0000000106
-109 0000000104
-299 NULL
242 NULL
+250 NULL
+292 NULL
+299 NULL
+321 0000000765
+323 NULL
+340 NULL
+394 NULL
424 NULL
+441 NULL
+500 0000000900
+500 0000000900
+500 0000000900
+660 NULL
+987 NULL
+2550 NULL
+2760 NULL
+3330 NULL
+3410 NULL
+7876 NULL
+9112 0000008771
+76710 NULL
+569300 NULL
drop view test.v1 ;
-CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61 limit 20 ;
+SELECT * FROM test.v1 order by f59,f60,f61 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set
2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set
3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set
-100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set
6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set
7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set
8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set
9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set
10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set
-76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
+100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set
+100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
drop view test.v1 ;
CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1 limit 50;
+SELECT * FROM test.v1 order by f59,f61 desc limit 50;
F59 f61
-1 0000000001
2 0000000002
3 0000000003
-100 0000000004
5 0000000005
6 0000000006
-7 0000000007
-8 0000000008
9 0000000009
10 0000000010
-76710 NULL
-2760 NULL
-569300 NULL
+17 0000000016
+19 0000000014
+24 NULL
+34 NULL
+107 0000000106
+323 NULL
+441 NULL
+500 0000000900
+500 0000000900
660 NULL
-250 NULL
-340 NULL
-3410 NULL
2550 NULL
3330 NULL
-441 NULL
+3410 NULL
+7876 NULL
drop view test.v1 ;
Testcase 3.3.1.54
@@ -9798,7 +9798,7 @@ Insert into t2 values (2,2000) ;
Insert into t2 values (31,97) ;
Create view test.v1 as select t1.f59, t1.f60
from t1,t2 where t1.f59=t2.f59 ;
-Select * from test.v1 limit 50 ;
+Select * from test.v1 order by f59 limit 50 ;
f59 f60
1 10
2 20
@@ -9864,7 +9864,7 @@ create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59 ;
-select * from test.v1;
+select * from test.v1 order by t1_f59 ;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
@@ -9877,7 +9877,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9903,7 +9903,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
t1_f59 t2_f59
1 2
1 3
@@ -9929,7 +9929,7 @@ t1_f59 t2_f59
Create or replace view test.v1 as
Select f59, f60, f61, a, b
FROM t2 natural join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
Select f59, f60, f61, a, b
@@ -9940,11 +9940,11 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
+NULL 4 NULL single NULL 4
2 2 double double 6 6
3 3 single-f3 single-f3 4 6
-NULL 4 NULL single NULL 4
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
@@ -9955,7 +9955,7 @@ NULL 4 NULL single NULL 4
Create or replace view test.v1 as
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
-Select * from v1;
+Select * from v1 order by f59;
f59 f60 f61 a b
2 double 6 2 2
3 single-f3 6 NULL 3
@@ -9970,7 +9970,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
1 NULL single NULL 3 NULL
2 2 double double 6 6
@@ -9985,11 +9985,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61
Create or replace view test.v1 as
Select f59, f60, a, b
FROM t2 natural right outer join t1;
-Select * from v1;
+Select * from v1 order by f59 desc;
f59 f60 a b
-1 single 1 NULL
-2 double 2 2
3 single-f3 3 NULL
+2 double 2 2
+1 single 1 NULL
Select f59, f60, a, b
FROM t2 natural right outer join t1;
f59 f60 a b
@@ -10010,18 +10010,18 @@ Insert into t1 values (107,501,601) ;
Insert into t1 values (901,801,401) ;
Create or replace view test.v1 as
Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
1
2
3
-100
5
6
7
8
9
10
+15
Drop view if exists test.v1 ;
Drop table if exists t1 ;
Drop view if exists v1;
@@ -10031,7 +10031,7 @@ Insert into t1 values (207,201,201) ;
Insert into t1 values (201,201,201) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
207
Drop view if exists test.v1 ;
@@ -10043,7 +10043,7 @@ Insert into t1 values (27,21,21) ;
Insert into t1 values (21,21,21) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
27
Drop view test.v1 ;
@@ -10058,18 +10058,18 @@ Insert into t1 values (17,51,61) ;
Insert into t1 values (91,81,41) ;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union ALL (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union Distinct (Select f59 from t1 where f60=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
f59
17
Drop view test.v1 ;
@@ -10081,7 +10081,7 @@ insert into t1 values (107,501,601);
insert into t1 values (901,801,401);
create or replace view test.v1 as
select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59;
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10089,7 +10089,7 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union all
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
107
@@ -10098,14 +10098,14 @@ create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union distinct
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
f59
107
drop view if exists test.v1 ;
@@ -10116,13 +10116,13 @@ Testcase 3.3.1.64
Drop view if exists test.v1 ;
CREATE VIEW test.v1 AS SELECT F59
FROM test.tb2 where test.tb2.F59 = 109;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
F59
109
109
ALTER VIEW test.v1 AS SELECT *
FROM test.tb2 WHERE test.tb2.f59 = 242 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
Drop view test.v1 ;
@@ -10202,7 +10202,8 @@ SHOW FIELDS FROM v1;
ERROR 42S02: Table 'test.v1' doesn't exist
CHECK TABLE v1;
Table Op Msg_type Msg_text
-test.v1 check error Table 'test.v1' doesn't exist
+test.v1 check Error Table 'test.v1' doesn't exist
+test.v1 check error Corrupt
DESCRIBE v1;
ERROR 42S02: Table 'test.v1' doesn't exist
EXPLAIN SELECT * FROM v1;
@@ -10249,8 +10250,8 @@ CREATE VIEW test3.v30 AS SELECT * FROM test3.v29;
CREATE VIEW test3.v31 AS SELECT * FROM test3.v30;
CREATE VIEW test3.v32 AS SELECT * FROM test3.v31;
SHOW CREATE VIEW test3.v32;
-View Create View
-v32 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test3`.`v32` AS select `v31`.`f1` AS `f1` from `test3`.`v31`
+View Create View character_set_client collation_connection
+v32 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test3`.`v32` AS select `v31`.`f1` AS `f1` from `test3`.`v31` latin1 latin1_swedish_ci
SELECT * FROM test3.v32;
f1
1.000
@@ -10259,8 +10260,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 1
DROP VIEW test3.v0;
SHOW CREATE VIEW test3.v32;
-View Create View
-v32 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test3`.`v32` AS select `v31`.`f1` AS `f1` from `test3`.`v31`
+View Create View character_set_client collation_connection
+v32 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test3`.`v32` AS select `v31`.`f1` AS `f1` from `test3`.`v31` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
SELECT * FROM test3.v32;
@@ -10268,15 +10269,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi
EXPLAIN SELECT * FROM test3.v32;
ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
-FIXME - Setting join_limit to 30 - hangs for higher values
+FIXME - Setting join_limit to 28 - hangs for higher values
----------------------------------------------------------
-SET @join_limit = 30;
+SET @join_limit = 28;
SET @max_level = @join_limit - 1;
DROP DATABASE IF EXISTS test3;
DROP TABLE IF EXISTS test1.t1;
DROP TABLE IF EXISTS test2.t1;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10383,15 +10382,11 @@ CREATE OR REPLACE VIEW test1.v26 AS SELECT f1, f2
FROM test3.t1 tab1 NATURAL JOIN test1.v25 tab2;
CREATE OR REPLACE VIEW test1.v27 AS SELECT f1, f2
FROM test1.t1 tab1 NATURAL JOIN test1.v26 tab2;
-CREATE OR REPLACE VIEW test1.v28 AS SELECT f1, f2
-FROM test2.t1 tab1 NATURAL JOIN test1.v27 tab2;
-CREATE OR REPLACE VIEW test1.v29 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v28 tab2;
-SHOW CREATE VIEW test1.v29;
-View Create View
-v29 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v29` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v28` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`))))
+SHOW CREATE VIEW test1.v27;
+View Create View character_set_client collation_connection
+v27 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v27` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test1`.`t1` `tab1` join `test1`.`v26` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
f1 f2
5 five
@@ -10400,14 +10395,14 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-CREATE VIEW test1.v30 AS SELECT f1, f2
-FROM test3.t1 tab1 NATURAL JOIN test1.v29 tab2;
-SHOW CREATE VIEW test1.v30;
-View Create View
-v30 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v30` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v29` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`))))
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
+CREATE VIEW test1.v28 AS SELECT f1, f2
+FROM test3.t1 tab1 NATURAL JOIN test1.v27 tab2;
+SHOW CREATE VIEW test1.v28;
+View Create View character_set_client collation_connection
+v28 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v28` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v27` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) latin1 latin1_swedish_ci
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
ERROR HY000: Got temporary error 4006 'Connect failure - out of connection objects (increase MaxNoOfConcurrentTransactions)' from NDBCLUSTER
The output of following EXPLAIN is deactivated, because the result
@@ -10415,33 +10410,31 @@ differs on some platforms
FIXME Is this a bug ?
--------------------------------------------------------------------------------
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v30;
-DROP VIEW IF EXISTS test1.v30;
+CAST(f2 AS CHAR) AS f2 FROM test1.v28;
+DROP VIEW IF EXISTS test1.v28;
CREATE OR REPLACE VIEW test1.v0 AS
SELECT f1 as f2, f2 as f1 FROM test2.t1;
CREATE OR REPLACE VIEW test2.v0 AS
SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
CREATE OR REPLACE VIEW test3.v0 AS
SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
-SHOW CREATE VIEW test1.v29;
+SHOW CREATE VIEW test1.v27;
SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
-CAST(f2 AS CHAR) AS f2 FROM test1.v29;
-DROP VIEW IF EXISTS test1.v29;
-DROP VIEW IF EXISTS test1.v28;
+CAST(f2 AS CHAR) AS f2 FROM test1.v27;
DROP VIEW IF EXISTS test1.v27;
DROP VIEW IF EXISTS test1.v26;
DROP VIEW IF EXISTS test1.v25;
@@ -10512,7 +10505,7 @@ info: Rows matched: 1 Changed: 1 Warnings: 0
SELECT * FROM tb2 where f59 = 8 and f60 = 105;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ;
f59 f60
8 105
Drop view test.v1 ;
@@ -10531,7 +10524,7 @@ f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set
-SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ;
f59 f60
891 105
891 105
@@ -10548,7 +10541,7 @@ DELETE FROM test.v1 where f59 = 789 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 789 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 789;
+SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ;
f59 f60
Drop view test.v1 ;
@@ -10561,7 +10554,7 @@ DELETE FROM test.v1 where f59 = 711 ;
affected rows: 1
SELECT * FROM tb2 where f59 = 711 ;
f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109
-SELECT f59,f60 FROM test.v1 where f59 = 711;
+SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ;
f59 f60
Drop view test.v1 ;
diff --git a/mysql-test/suite/funcs_1/t/a_processlist_priv_no_prot.test b/mysql-test/suite/funcs_1/t/a_processlist_priv_no_prot.test
new file mode 100644
index 00000000000..757377cdb0c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/a_processlist_priv_no_prot.test
@@ -0,0 +1,36 @@
+########## suite/funcs_1/t/a_processlist_priv_no_prot.test #############
+# #
+# Testing of privileges around #
+# SELECT ... PROCESSLIST/SHOW PROCESSLIST #
+# #
+# The prepared statement variant of this test is #
+# suite/funcs_1/t/b_processlist_priv_ps.test. #
+# #
+# There is important documentation within #
+# suite/funcs_1/datadict/processlist_priv.inc #
+# #
+# Note(mleich): #
+# The name "a_process..." with the unusual prefix "a_" is #
+# caused by the fact that this test should run as first test, that #
+# means direct after server startup. Otherwise the connection IDs #
+# within the processlist would differ. #
+# #
+# Creation: #
+# 2007-08-14 mleich Create this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+########################################################################
+
+# One subtest is skipped because of
+# Bug#30395 strange results after REVOKE PROCESS ON *.* FROM ...
+let $fixed_bug_30395= 0;
+
+# The file with expected results fits only to a run without
+# ps-protocol/sp-protocol/cursor-protocol/view-protocol.
+if (`SELECT $PS_PROTOCOL + $SP_PROTOCOL + $CURSOR_PROTOCOL
+ + $VIEW_PROTOCOL > 0`)
+{
+ --skip Test requires: ps-protocol/sp-protocol/cursor-protocol/view-protocol disabled
+}
+
+--source suite/funcs_1/datadict/processlist_priv.inc
diff --git a/mysql-test/suite/funcs_1/t/a_processlist_val_no_prot.test b/mysql-test/suite/funcs_1/t/a_processlist_val_no_prot.test
new file mode 100644
index 00000000000..3bf7307fbb1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/a_processlist_val_no_prot.test
@@ -0,0 +1,31 @@
+########### suite/funcs_1/t/a_processlist_val_no_prot.test #############
+# #
+# Testing of values within INFORMATION_SCHEMA.PROCESSLIST #
+# #
+# The prepared statement variant of this test is #
+# suite/funcs_1/t/b_processlist_val_ps.test. #
+# #
+# There is important documentation within #
+# suite/funcs_1/datadict/processlist_val.inc #
+# #
+# Note(mleich): #
+# The name "a_process..." with the unusual prefix "a_" is #
+# caused by the fact that this test should run as second test, that #
+# means direct after server startup and a_processlist_priv_no_prot. #
+# Otherwise the connection IDs within the processlist would differ. #
+# #
+# Creation: #
+# 2007-08-09 mleich Implement this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+########################################################################
+
+# The file with expected results fits only to a run without
+# ps-protocol/sp-protocol/cursor-protocol/view-protocol.
+if (`SELECT $PS_PROTOCOL + $SP_PROTOCOL + $CURSOR_PROTOCOL
+ + $VIEW_PROTOCOL > 0`)
+{
+ --skip Test requires: ps-protocol/sp-protocol/cursor-protocol/view-protocol disabled
+}
+
+--source suite/funcs_1/datadict/processlist_val.inc
diff --git a/mysql-test/suite/funcs_1/t/b_processlist_priv_ps.test b/mysql-test/suite/funcs_1/t/b_processlist_priv_ps.test
new file mode 100644
index 00000000000..9bba85cbad1
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/b_processlist_priv_ps.test
@@ -0,0 +1,35 @@
+########### suite/funcs_1/t/b_processlist_priv_ps.test #################
+# #
+# Testing of privileges around #
+# SELECT ... PROCESSLIST/SHOW PROCESSLIST #
+# #
+# The no (ps/sp/view/cursor) protocol variant of this test is #
+# suite/funcs_1/t/a_processlist_priv_no_prot.test. #
+# #
+# There is important documentation within #
+# suite/funcs_1/datadict/processlist_priv.inc #
+# #
+# Note(mleich): #
+# The name "b_process..." with the unusual prefix "b_" is #
+# caused by the fact that this test should run as first test, that #
+# means direct after server startup. Otherwise the connection IDs #
+# within the processlist would differ. #
+# #
+# Creation: #
+# 2007-08-14 mleich Create this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+########################################################################
+
+# One subtest is skipped because of
+# Bug#30395 strange results after REVOKE PROCESS ON *.* FROM ...
+let $fixed_bug_30395= 0;
+
+# The file with expected results fits only to a run with "--ps-protocol".
+if (`SELECT $SP_PROTOCOL + $CURSOR_PROTOCOL + $VIEW_PROTOCOL > 0
+ OR $PS_PROTOCOL = 0`)
+{
+ --skip Test requires: ps-protocol enabled, other protocols disabled
+}
+
+--source suite/funcs_1/datadict/processlist_priv.inc
diff --git a/mysql-test/suite/funcs_1/t/b_processlist_val_ps.test b/mysql-test/suite/funcs_1/t/b_processlist_val_ps.test
new file mode 100644
index 00000000000..1aa57641a07
--- /dev/null
+++ b/mysql-test/suite/funcs_1/t/b_processlist_val_ps.test
@@ -0,0 +1,30 @@
+############## suite/funcs_1/t/b_processlist_val_ps.test ###############
+# #
+# Testing of values within INFORMATION_SCHEMA.PROCESSLIST #
+# #
+# The no (ps/sp/view/cursor) protocol variant of this test is #
+# suite/funcs_1/t/a_processlist_val_no_prot.test. #
+# #
+# There is important documentation within #
+# suite/funcs_1/datadict/processlist_val.inc #
+# #
+# Note(mleich): #
+# The name "b_process..." with the unusual prefix "b_" is #
+# caused by the fact that this test should run as second test, that #
+# means direct after server startup and b_processlist_priv_ps. #
+# Otherwise the connection IDs within the processlist would differ. #
+# #
+# Creation: #
+# 2007-08-09 mleich Implement this test as part of #
+# WL#3982 Test information_schema.processlist #
+# #
+########################################################################
+
+# The file with expected results fits only to a run with "--ps-protocol".
+if (`SELECT $SP_PROTOCOL + $CURSOR_PROTOCOL + $VIEW_PROTOCOL > 0
+ OR $PS_PROTOCOL = 0`)
+{
+ --skip Test requires: ps-protocol enabled, other protocols disabled
+}
+
+--source suite/funcs_1/datadict/processlist_val.inc
diff --git a/mysql-test/suite/funcs_1/views/views_master.inc b/mysql-test/suite/funcs_1/views/views_master.inc
index 106708742f0..cb71fd7f790 100644
--- a/mysql-test/suite/funcs_1/views/views_master.inc
+++ b/mysql-test/suite/funcs_1/views/views_master.inc
@@ -145,33 +145,33 @@ Insert into t1 values (500,9866);
--enable_warnings
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 where f59=250;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f60,f61 limit 0,10;
#(02)
Drop view if exists v1 ;
CREATE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59,f60,f61 limit 0,10;
#(03)
CREATE or REPLACE VIEW v1 AS select f59,f60,f61
FROM test.tb2 limit 4,3;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59,f60,f61 limit 0,10;
#(04)
CREATE or REPLACE VIEW v1 AS select distinct f59
FROM test.tb2 limit 4,3;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(05)
ALTER VIEW v1 AS select f59
FROM test.tb2 limit 6,2;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(06)
CREATE or REPLACE VIEW v1 AS select f59
from tb2 order by f59 limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(07)
CREATE or REPLACE VIEW v1 AS select f59
@@ -186,32 +186,32 @@ Insert into t1 values (500,9866);
#(09)
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(10)
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 asc limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(11)
CREATE or REPLACE VIEW v1 AS select f59
from tb2 group by f59 desc limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(12)
CREATE or REPLACE VIEW v1 AS (select f59 from tb2)
union (select f59 from t1) limit 100;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(13)
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION DISTINCT(select f59 FROM t1) ;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(14)
CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2)
UNION ALL(select f59 FROM t1) ;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59 limit 0,10;
#(15)
if ($have_bug_11589)
@@ -220,24 +220,24 @@ if ($have_bug_11589)
}
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH LOCAL CHECK OPTION ;
- select * FROM v1 limit 0,50;
+ select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50;
#(16)
CREATE or REPLACE VIEW v1 AS select *
FROM test.tb2 WITH CASCADED CHECK OPTION ;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10;
--enable_ps_protocol
#(17)
CREATE OR REPLACE VIEW v1 AS SELECT F59, F60
FROM test.tb2 WITH CASCADED CHECK OPTION;
- SELECT * FROM v1 limit 0,10;
+ SELECT * FROM v1 order by f59,f60 limit 0,10;
#(18)
CREATE or REPLACE VIEW v1 AS select f59, f60
from test.tb2 where f59=3330 ;
- select * FROM v1 limit 0,10;
+ select * FROM v1 order by f60 limit 0,10;
DROP VIEW v1 ;
DROP TABLE t1 ;
@@ -816,18 +816,18 @@ AS SELECT * FROM t1 limit 2;
SHOW CREATE VIEW test.v1;
SELECT * FROM test.v1;
# Switch the base table
-CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2;
+CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2;
SHOW CREATE VIEW test.v1;
if ($have_bug_11589)
{
--disable_ps_protocol
}
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65;
--enable_ps_protocol
# Switch the SELECT but not the base table
CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100;
SHOW CREATE VIEW test.v1;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59;
Drop table test.t1 ;
Drop view test.v1 ;
@@ -1020,7 +1020,7 @@ let $message= Testcase 3.3.1.21 ;
DROP VIEW IF EXISTS v1;
--enable_warnings
CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2;
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by F59, F60 desc;
Drop view if exists test.v1 ;
@@ -1175,7 +1175,7 @@ Drop VIEW IF EXISTS test.v1_1 ;
--enable_warnings
Create view test.v1 AS Select * from test.tb2 limit 2 ;
Create view test.v1_1 AS Select F59 from test.v1 ;
-Select * from test.v1_1 limit 20 ;
+Select * from test.v1_1 order by F59 limit 20 ;
Drop view test.v1 ;
Drop view test.v1_1 ;
@@ -1197,7 +1197,7 @@ if ($have_bug_11589)
{
--disable_ps_protocol
}
-Select * from v1 ;
+Select * from v1 order by f59,f60,f61,f62,f63,f64,f65;
--enable_ps_protocol
Select * from test2.v2 ;
Drop view if exists test2.v1 ;
@@ -1287,7 +1287,7 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
Drop view if exists test.v1_firstview ;
Drop view if exists test.v1_secondview ;
Drop view if exists test.v1 ;
@@ -1314,7 +1314,7 @@ CREATE VIEW v1
AS SELECT test.v1_firstview.F59, test.v1_firstview.F60
FROM test.v1_firstview INNER JOIN test.v1_secondview
ON test.v1_firstview.f59 = test.v1_secondview.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
Drop view v1 ;
Drop view test.v1_firstview ;
Drop view test.v1_secondview ;
@@ -1339,7 +1339,7 @@ CREATE VIEW test.v1
AS SELECT test.v1_firstview.f59, test.v1_firstview.f60
FROM test.v1_firstview INNER JOIN test.tb2
ON test.v1_firstview.f59 = test.tb2.f59;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59,f60 limit 0,10;
Drop view test.v1 ;
Drop view test.v1_firstview;
@@ -1360,7 +1360,7 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ;
CREATE VIEW v1
AS SELECT v1_firstview.f59, v1_firstview.f60
FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ;
-SELECT * FROM v1 limit 0,10;
+SELECT * FROM v1 order by f59,f60 limit 0,10;
Drop database test2 ;
@@ -1385,7 +1385,7 @@ Drop view if exists test.v1_1 ;
Drop view if exists test.v1_main ;
--enable_warnings
Create view test.v1 as Select f59, f60 FROM test.tb2;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59,f60 limit 0,10;
Create table t1(f59 int, f60 int);
Insert into t1 values (90,507) ;
@@ -1396,7 +1396,7 @@ Select * from v1_1 ;
Create view v1_main
as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1
ON test.tb2.f59 = test.v1.f59;
-Select * from v1_main limit 0,10;
+Select * from v1_main order by f59 limit 0,10;
Drop table t1;
Drop view test.v1 ;
@@ -1505,7 +1505,7 @@ Drop view if exists test1.v1_1 ;
Drop database if exists test3 ;
--enable_warnings
Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ;
-Select * from test.v1 ;
+Select * from test.v1 order by f59,f60;
Create table test1.t1 (f59 int,f60 int) ;
Insert into test1.t1 values (199,507) ;
@@ -1550,7 +1550,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1
AS Select f59 from (Select * FROM tb2 limit 20) tx ;
--error 1146
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
--disable_warnings
Drop view if exists test.v1 ;
--enable_warnings
@@ -1709,7 +1709,7 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04;
--enable_info
UPDATE test.v1 SET f59 = 30 where F59 = 04 ;
--disable_info
-SELECT * FROM test.v1 where f59 = 30 ;
+SELECT * FROM test.v1 where f59 = 30 order by f59;
if ($have_bug_11589)
{
--disable_ps_protocol
@@ -1726,7 +1726,7 @@ if ($have_bug_11589)
}
SELECT * FROM tb2 where f59 = 100 ;
--enable_ps_protocol
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
drop view if exists test.v1 ;
@@ -1821,7 +1821,7 @@ FROM test.tb2 where f59 = 195 WITH CHECK OPTION ;
--error 1369
UPDATE test.v1 SET f59 = 198 where f59=195 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
drop view if exists test.v1 ;
@@ -1846,7 +1846,7 @@ CREATE VIEW test.v2 as SELECT * FROM test.v1 ;
# This UPDATE violates the definition of VIEW test.v1.
--error 1369
UPDATE test.v1 SET F59 = 919 where f59 = 0987 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
# ML: This UPDATE violates the definition of VIEW test.v1, but this
# does not count, because the UPDATE runs on test.v2, which
@@ -2299,7 +2299,7 @@ if ($have_bug_11589)
{
--disable_ps_protocol
}
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by f59 ;
--enable_ps_protocol
drop view test.v1 ;
###############################################################################
@@ -2310,7 +2310,7 @@ drop view test.v1 ;
# AS SELECT col1, col3 FROM <table name>.
###############################################################################
CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ;
-SELECT * FROM test.v1 ;
+SELECT * FROM test.v1 order by F59, F61 ;
drop view test.v1 ;
###############################################################################
# Testcase 3.3.1.52: Ensure that a view that is a subset of every column and
@@ -2319,12 +2319,12 @@ drop view test.v1 ;
# that is semantically equivalent to CREATE VIEW <view name>
# AS SELECT * FROM <table name> WHERE ....
###############################################################################
-CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ;
+CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61 limit 20 ;
if ($have_bug_11589)
{
--disable_ps_protocol
}
-SELECT * FROM test.v1;
+SELECT * FROM test.v1 order by f59,f60,f61 ;
--enable_ps_protocol
drop view test.v1 ;
###############################################################################
@@ -2335,7 +2335,7 @@ drop view test.v1 ;
# <view name> AS SELECT col1, col3 FROM <table name> WHERE ..
###############################################################################
CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ;
-SELECT * FROM test.v1 limit 50;
+SELECT * FROM test.v1 order by f59,f61 desc limit 50;
drop view test.v1 ;
@@ -2363,7 +2363,7 @@ Insert into t2 values (2,2000) ;
Insert into t2 values (31,97) ;
Create view test.v1 as select t1.f59, t1.f60
from t1,t2 where t1.f59=t2.f59 ;
-Select * from test.v1 limit 50 ;
+Select * from test.v1 order by f59 limit 50 ;
drop table test.t1 ;
drop table test.t2 ;
@@ -2457,7 +2457,7 @@ create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59 ;
-select * from test.v1;
+select * from test.v1 order by t1_f59 ;
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
from t1 inner join t2 where t1.f59 = t2.f59;
@@ -2466,7 +2466,7 @@ from t1 inner join t2 where t1.f59 = t2.f59;
Create or replace view test.v1 as
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
Select t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2 cross join t1;
@@ -2474,7 +2474,7 @@ FROM t2 cross join t1;
Create or replace view test.v1 as
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
-Select * from v1;
+Select * from v1 order by t1_f59,t2_f59;
Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59
FROM t2,t1;
@@ -2482,7 +2482,7 @@ FROM t2,t1;
Create or replace view test.v1 as
Select f59, f60, f61, a, b
FROM t2 natural join t1;
-Select * from v1;
+Select * from v1 order by f59;
Select f59, f60, f61, a, b
FROM t2 natural join t1;
@@ -2491,7 +2491,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 left outer join t1 on t2.f59=t1.f59;
@@ -2500,7 +2500,7 @@ FROM t2 left outer join t1 on t2.f59=t1.f59;
Create or replace view test.v1 as
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
-Select * from v1;
+Select * from v1 order by f59;
Select f59, f60, f61, t1.a, t2.b
FROM t2 natural left outer join t1;
@@ -2509,7 +2509,7 @@ Create or replace view test.v1 as
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
-Select * from v1;
+Select * from v1 order by t1_f59;
Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60,
t1.f61 t1_f61, t2.f61 t2_f61
FROM t2 right outer join t1 on t2.f59=t1.f59;
@@ -2518,7 +2518,7 @@ FROM t2 right outer join t1 on t2.f59=t1.f59;
Create or replace view test.v1 as
Select f59, f60, a, b
FROM t2 natural right outer join t1;
-Select * from v1;
+Select * from v1 order by f59 desc;
Select f59, f60, a, b
FROM t2 natural right outer join t1;
@@ -2551,7 +2551,7 @@ Insert into t1 values (901,801,401) ;
Create or replace view test.v1 as
Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Drop view if exists test.v1 ;
# Testcase 3.3.1.A2 ;
@@ -2566,7 +2566,7 @@ Insert into t1 values (201,201,201) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Drop view if exists test.v1 ;
# Testcase 3.3.1.A3 ;
@@ -2581,7 +2581,7 @@ Insert into t1 values (21,21,21) ;
Create or replace view test.v1
as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ;
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Drop view test.v1 ;
@@ -2607,15 +2607,15 @@ Insert into t1 values (91,81,41) ;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union ALL (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union (Select f59 from t1 where f59=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 )
Union Distinct (Select f59 from t1 where f60=17 );
-Select * from test.v1 limit 0,10;
+Select * from test.v1 order by f59 limit 0,10;
Drop view test.v1 ;
@@ -2631,25 +2631,25 @@ insert into t1 values (901,801,401);
create or replace view test.v1 as
select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59;
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union all
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
create or replace view test.v1 as
(select f59 from tb2 where f59=107 )
union distinct
(select f59 from t1 where f59=107 );
-select * from test.v1 limit 0,10;
+select * from test.v1 order by f59 limit 0,10;
drop view if exists test.v1 ;
drop table t1;
@@ -2668,7 +2668,7 @@ Drop view if exists test.v1 ;
CREATE VIEW test.v1 AS SELECT F59
FROM test.tb2 where test.tb2.F59 = 109;
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
ALTER VIEW test.v1 AS SELECT *
FROM test.tb2 WHERE test.tb2.f59 = 242 ;
@@ -2676,7 +2676,7 @@ if ($have_bug_11589)
{
--disable_ps_protocol
}
-SELECT * FROM test.v1 limit 0,10;
+SELECT * FROM test.v1 order by f59 limit 0,10;
--enable_ps_protocol
Drop view test.v1 ;
@@ -2899,10 +2899,14 @@ eval EXPLAIN SELECT * FROM test3.v$toplevel;
# and OBN's box performs excessive paging.
# (RAM: OBN ~384MB RAM, ML 1 GB)
#++++++++++++++++++++++++++++++++++++++++++++++
-let $message= FIXME - Setting join_limit to 30 - hangs for higher values;
+let $message= FIXME - Setting join_limit to 28 - hangs for higher values;
--source include/show_msg.inc
+# OBN - Reduced from 30 in 5.1.21 to avoid hitting the ndbcluster limit
+# of "ERROR HY000:RROR HY000: Got temporary error 4006 'Connect failure
+# - out of connection objects (increase MaxNoOfConcurrentTransactions)'
+# from NDBCLUSTER " to early;
#SET @join_limit = 61;
-SET @join_limit = 30;
+SET @join_limit = 28; # OBN - see above
SET @max_level = @join_limit - 1;
--enable_query_log
@@ -3184,7 +3188,7 @@ if ($have_bug_11589)
}
SELECT * FROM tb2 where f59 = 8 and f60 = 105;
--enable_ps_protocol
-SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ;
Drop view test.v1 ;
@@ -3212,7 +3216,7 @@ if ($have_bug_11589)
}
SELECT * FROM tb2 where f59 = 891 and f60 = 105;
--enable_ps_protocol
-SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105;
+SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ;
Drop view test.v1 ;
@@ -3233,7 +3237,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ;
DELETE FROM test.v1 where f59 = 789 ;
--disable_info
SELECT * FROM tb2 where f59 = 789 ;
-SELECT f59,f60 FROM test.v1 where f59 = 789;
+SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ;
Drop view test.v1 ;
@@ -3256,7 +3260,7 @@ DELETE FROM test.v1 where f59 = 711 ;
--disable_info
SELECT * FROM tb2 where f59 = 711 ;
-SELECT f59,f60 FROM test.v1 where f59 = 711;
+SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ;
Drop view test.v1 ;
diff --git a/mysql-test/suite/funcs_2/r/ndb_charset.result b/mysql-test/suite/funcs_2/r/ndb_charset.result
index 538bea5e75e..7a5c63f71d6 100644
--- a/mysql-test/suite/funcs_2/r/ndb_charset.result
+++ b/mysql-test/suite/funcs_2/r/ndb_charset.result
@@ -3,7 +3,7 @@ SET NAMES armscii8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=NDB CHARACTER SET armscii8 COLLATE armscii8_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # armscii8_bin # # #
+t1 ndbcluster # # # # # # # # # # # # armscii8_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -233,7 +233,7 @@ SET NAMES armscii8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_general_ci) ENGINE=NDB CHARACTER SET armscii8 COLLATE armscii8_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # armscii8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # armscii8_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -463,7 +463,7 @@ SET NAMES ascii;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_bin) ENGINE=NDB CHARACTER SET ascii COLLATE ascii_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # ascii_bin # # #
+t1 ndbcluster # # # # # # # # # # # # ascii_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -693,7 +693,7 @@ SET NAMES ascii;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ascii COLLATE ascii_general_ci) ENGINE=NDB CHARACTER SET ascii COLLATE ascii_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # ascii_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # ascii_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -923,7 +923,7 @@ SET NAMES big5;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_bin) ENGINE=NDB CHARACTER SET big5 COLLATE big5_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # big5_bin # # #
+t1 ndbcluster # # # # # # # # # # # # big5_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -1027,7 +1027,7 @@ SET NAMES big5;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET big5 COLLATE big5_chinese_ci) ENGINE=NDB CHARACTER SET big5 COLLATE big5_chinese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # big5_chinese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # big5_chinese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -1131,7 +1131,7 @@ SET NAMES binary;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET binary) ENGINE=NDB CHARACTER SET binary;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # binary # # #
+t1 ndbcluster # # # # # # # # # # # # binary # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -1361,7 +1361,7 @@ SET NAMES cp1250;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_bin) ENGINE=NDB CHARACTER SET cp1250 COLLATE cp1250_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1250_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp1250_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -1591,7 +1591,7 @@ SET NAMES cp1250;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_croatian_ci) ENGINE=NDB CHARACTER SET cp1250 COLLATE cp1250_croatian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1250_croatian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1250_croatian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -1821,7 +1821,7 @@ SET NAMES cp1250;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_czech_cs) ENGINE=NDB CHARACTER SET cp1250 COLLATE cp1250_czech_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1250_czech_cs # # #
+t1 ndbcluster # # # # # # # # # # # # cp1250_czech_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
7F 1
@@ -2051,7 +2051,7 @@ SET NAMES cp1250;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1250 COLLATE cp1250_general_ci) ENGINE=NDB CHARACTER SET cp1250 COLLATE cp1250_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1250_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1250_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
A0 1
@@ -2281,7 +2281,7 @@ SET NAMES cp1251;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bin) ENGINE=NDB CHARACTER SET cp1251 COLLATE cp1251_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1251_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp1251_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -2511,7 +2511,7 @@ SET NAMES cp1251;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci) ENGINE=NDB CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1251_bulgarian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1251_bulgarian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -2741,7 +2741,7 @@ SET NAMES cp1251;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_ci) ENGINE=NDB CHARACTER SET cp1251 COLLATE cp1251_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1251_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1251_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -2971,7 +2971,7 @@ SET NAMES cp1251;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_general_cs) ENGINE=NDB CHARACTER SET cp1251 COLLATE cp1251_general_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1251_general_cs # # #
+t1 ndbcluster # # # # # # # # # # # # cp1251_general_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -3201,7 +3201,7 @@ SET NAMES cp1251;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci) ENGINE=NDB CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1251_ukrainian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1251_ukrainian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
60 1
@@ -3431,7 +3431,7 @@ SET NAMES cp1256;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_bin) ENGINE=NDB CHARACTER SET cp1256 COLLATE cp1256_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1256_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp1256_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -3661,7 +3661,7 @@ SET NAMES cp1256;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1256 COLLATE cp1256_general_ci) ENGINE=NDB CHARACTER SET cp1256 COLLATE cp1256_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1256_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1256_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -3891,7 +3891,7 @@ SET NAMES cp1257;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_bin) ENGINE=NDB CHARACTER SET cp1257 COLLATE cp1257_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1257_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp1257_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -4121,7 +4121,7 @@ SET NAMES cp1257;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_general_ci) ENGINE=NDB CHARACTER SET cp1257 COLLATE cp1257_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1257_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1257_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -4351,7 +4351,7 @@ SET NAMES cp1257;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp1257 COLLATE cp1257_lithuanian_ci) ENGINE=NDB CHARACTER SET cp1257 COLLATE cp1257_lithuanian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp1257_lithuanian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp1257_lithuanian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -4581,7 +4581,7 @@ SET NAMES cp850;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_bin) ENGINE=NDB CHARACTER SET cp850 COLLATE cp850_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp850_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp850_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -4811,7 +4811,7 @@ SET NAMES cp850;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp850 COLLATE cp850_general_ci) ENGINE=NDB CHARACTER SET cp850 COLLATE cp850_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp850_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp850_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -5041,7 +5041,7 @@ SET NAMES cp852;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_bin) ENGINE=NDB CHARACTER SET cp852 COLLATE cp852_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp852_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp852_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -5271,7 +5271,7 @@ SET NAMES cp852;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp852 COLLATE cp852_general_ci) ENGINE=NDB CHARACTER SET cp852 COLLATE cp852_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp852_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp852_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -5501,7 +5501,7 @@ SET NAMES cp866;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_bin) ENGINE=NDB CHARACTER SET cp866 COLLATE cp866_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp866_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp866_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -5731,7 +5731,7 @@ SET NAMES cp866;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp866 COLLATE cp866_general_ci) ENGINE=NDB CHARACTER SET cp866 COLLATE cp866_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp866_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp866_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -5961,7 +5961,7 @@ SET NAMES cp932;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_bin) ENGINE=NDB CHARACTER SET cp932 COLLATE cp932_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp932_bin # # #
+t1 ndbcluster # # # # # # # # # # # # cp932_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6128,7 +6128,7 @@ SET NAMES cp932;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET cp932 COLLATE cp932_japanese_ci) ENGINE=NDB CHARACTER SET cp932 COLLATE cp932_japanese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # cp932_japanese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # cp932_japanese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6295,7 +6295,7 @@ SET NAMES dec8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_bin) ENGINE=NDB CHARACTER SET dec8 COLLATE dec8_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # dec8_bin # # #
+t1 ndbcluster # # # # # # # # # # # # dec8_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6525,7 +6525,7 @@ SET NAMES dec8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET dec8 COLLATE dec8_swedish_ci) ENGINE=NDB CHARACTER SET dec8 COLLATE dec8_swedish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # dec8_swedish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # dec8_swedish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6755,7 +6755,7 @@ SET NAMES eucjpms;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_bin) ENGINE=NDB CHARACTER SET eucjpms COLLATE eucjpms_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # eucjpms_bin # # #
+t1 ndbcluster # # # # # # # # # # # # eucjpms_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6859,7 +6859,7 @@ SET NAMES eucjpms;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci) ENGINE=NDB CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # eucjpms_japanese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # eucjpms_japanese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -6963,7 +6963,7 @@ SET NAMES euckr;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_bin) ENGINE=NDB CHARACTER SET euckr COLLATE euckr_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # euckr_bin # # #
+t1 ndbcluster # # # # # # # # # # # # euckr_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7067,7 +7067,7 @@ SET NAMES euckr;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET euckr COLLATE euckr_korean_ci) ENGINE=NDB CHARACTER SET euckr COLLATE euckr_korean_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # euckr_korean_ci # # #
+t1 ndbcluster # # # # # # # # # # # # euckr_korean_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7171,7 +7171,7 @@ SET NAMES gb2312;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_bin) ENGINE=NDB CHARACTER SET gb2312 COLLATE gb2312_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # gb2312_bin # # #
+t1 ndbcluster # # # # # # # # # # # # gb2312_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7275,7 +7275,7 @@ SET NAMES gb2312;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci) ENGINE=NDB CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # gb2312_chinese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # gb2312_chinese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7379,7 +7379,7 @@ SET NAMES gbk;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_bin) ENGINE=NDB CHARACTER SET gbk COLLATE gbk_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # gbk_bin # # #
+t1 ndbcluster # # # # # # # # # # # # gbk_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7483,7 +7483,7 @@ SET NAMES gbk;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET gbk COLLATE gbk_chinese_ci) ENGINE=NDB CHARACTER SET gbk COLLATE gbk_chinese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # gbk_chinese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # gbk_chinese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7587,7 +7587,7 @@ SET NAMES geostd8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_bin) ENGINE=NDB CHARACTER SET geostd8 COLLATE geostd8_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # geostd8_bin # # #
+t1 ndbcluster # # # # # # # # # # # # geostd8_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -7817,7 +7817,7 @@ SET NAMES geostd8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET geostd8 COLLATE geostd8_general_ci) ENGINE=NDB CHARACTER SET geostd8 COLLATE geostd8_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # geostd8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # geostd8_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -8047,7 +8047,7 @@ SET NAMES greek;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_bin) ENGINE=NDB CHARACTER SET greek COLLATE greek_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # greek_bin # # #
+t1 ndbcluster # # # # # # # # # # # # greek_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -8277,7 +8277,7 @@ SET NAMES greek;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET greek COLLATE greek_general_ci) ENGINE=NDB CHARACTER SET greek COLLATE greek_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # greek_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # greek_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -8507,7 +8507,7 @@ SET NAMES hebrew;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_bin) ENGINE=NDB CHARACTER SET hebrew COLLATE hebrew_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # hebrew_bin # # #
+t1 ndbcluster # # # # # # # # # # # # hebrew_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -8737,7 +8737,7 @@ SET NAMES hebrew;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hebrew COLLATE hebrew_general_ci) ENGINE=NDB CHARACTER SET hebrew COLLATE hebrew_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # hebrew_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # hebrew_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -8967,7 +8967,7 @@ SET NAMES hp8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_bin) ENGINE=NDB CHARACTER SET hp8 COLLATE hp8_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # hp8_bin # # #
+t1 ndbcluster # # # # # # # # # # # # hp8_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -9197,7 +9197,7 @@ SET NAMES hp8;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET hp8 COLLATE hp8_english_ci) ENGINE=NDB CHARACTER SET hp8 COLLATE hp8_english_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # hp8_english_ci # # #
+t1 ndbcluster # # # # # # # # # # # # hp8_english_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -9427,7 +9427,7 @@ SET NAMES keybcs2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_bin) ENGINE=NDB CHARACTER SET keybcs2 COLLATE keybcs2_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # keybcs2_bin # # #
+t1 ndbcluster # # # # # # # # # # # # keybcs2_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -9657,7 +9657,7 @@ SET NAMES keybcs2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET keybcs2 COLLATE keybcs2_general_ci) ENGINE=NDB CHARACTER SET keybcs2 COLLATE keybcs2_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # keybcs2_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # keybcs2_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -9887,7 +9887,7 @@ SET NAMES koi8r;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_bin) ENGINE=NDB CHARACTER SET koi8r COLLATE koi8r_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # koi8r_bin # # #
+t1 ndbcluster # # # # # # # # # # # # koi8r_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -10117,7 +10117,7 @@ SET NAMES koi8r;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8r COLLATE koi8r_general_ci) ENGINE=NDB CHARACTER SET koi8r COLLATE koi8r_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # koi8r_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # koi8r_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -10347,7 +10347,7 @@ SET NAMES koi8u;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_bin) ENGINE=NDB CHARACTER SET koi8u COLLATE koi8u_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # koi8u_bin # # #
+t1 ndbcluster # # # # # # # # # # # # koi8u_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -10577,7 +10577,7 @@ SET NAMES koi8u;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET koi8u COLLATE koi8u_general_ci) ENGINE=NDB CHARACTER SET koi8u COLLATE koi8u_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # koi8u_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # koi8u_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
60 1
@@ -10807,7 +10807,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_bin) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_bin # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -11037,7 +11037,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_danish_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_danish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_danish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_danish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -11267,7 +11267,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -11497,7 +11497,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_general_cs) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_general_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_general_cs # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_general_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -11727,7 +11727,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german1_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_german1_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_german1_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_german1_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -11957,7 +11957,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_german2_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_german2_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_german2_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_german2_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -12187,7 +12187,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_spanish_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_spanish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_spanish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_spanish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -12417,7 +12417,7 @@ SET NAMES latin1;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin1 COLLATE latin1_swedish_ci) ENGINE=NDB CHARACTER SET latin1 COLLATE latin1_swedish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin1_swedish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin1_swedish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -12647,7 +12647,7 @@ SET NAMES latin2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_bin) ENGINE=NDB CHARACTER SET latin2 COLLATE latin2_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin2_bin # # #
+t1 ndbcluster # # # # # # # # # # # # latin2_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -12877,7 +12877,7 @@ SET NAMES latin2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_croatian_ci) ENGINE=NDB CHARACTER SET latin2 COLLATE latin2_croatian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin2_croatian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin2_croatian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -13107,7 +13107,7 @@ SET NAMES latin2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_czech_cs) ENGINE=NDB CHARACTER SET latin2 COLLATE latin2_czech_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin2_czech_cs # # #
+t1 ndbcluster # # # # # # # # # # # # latin2_czech_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
2E 1
@@ -13337,7 +13337,7 @@ SET NAMES latin2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_general_ci) ENGINE=NDB CHARACTER SET latin2 COLLATE latin2_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin2_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin2_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -13567,7 +13567,7 @@ SET NAMES latin2;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin2 COLLATE latin2_hungarian_ci) ENGINE=NDB CHARACTER SET latin2 COLLATE latin2_hungarian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin2_hungarian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin2_hungarian_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
7F 1
@@ -13797,7 +13797,7 @@ SET NAMES latin5;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_bin) ENGINE=NDB CHARACTER SET latin5 COLLATE latin5_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin5_bin # # #
+t1 ndbcluster # # # # # # # # # # # # latin5_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -14027,7 +14027,7 @@ SET NAMES latin5;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin5 COLLATE latin5_turkish_ci) ENGINE=NDB CHARACTER SET latin5 COLLATE latin5_turkish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin5_turkish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin5_turkish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -14257,7 +14257,7 @@ SET NAMES latin7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_bin) ENGINE=NDB CHARACTER SET latin7 COLLATE latin7_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin7_bin # # #
+t1 ndbcluster # # # # # # # # # # # # latin7_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -14487,7 +14487,7 @@ SET NAMES latin7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_estonian_cs) ENGINE=NDB CHARACTER SET latin7 COLLATE latin7_estonian_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin7_estonian_cs # # #
+t1 ndbcluster # # # # # # # # # # # # latin7_estonian_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
80 1
@@ -14717,7 +14717,7 @@ SET NAMES latin7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_ci) ENGINE=NDB CHARACTER SET latin7 COLLATE latin7_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin7_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # latin7_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
7F 1
@@ -14947,7 +14947,7 @@ SET NAMES latin7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET latin7 COLLATE latin7_general_cs) ENGINE=NDB CHARACTER SET latin7 COLLATE latin7_general_cs;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # latin7_general_cs # # #
+t1 ndbcluster # # # # # # # # # # # # latin7_general_cs # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
7F 1
@@ -15177,7 +15177,7 @@ SET NAMES macce;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_bin) ENGINE=NDB CHARACTER SET macce COLLATE macce_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # macce_bin # # #
+t1 ndbcluster # # # # # # # # # # # # macce_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -15407,7 +15407,7 @@ SET NAMES macce;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macce COLLATE macce_general_ci) ENGINE=NDB CHARACTER SET macce COLLATE macce_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # macce_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # macce_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -15637,7 +15637,7 @@ SET NAMES macroman;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_bin) ENGINE=NDB CHARACTER SET macroman COLLATE macroman_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # macroman_bin # # #
+t1 ndbcluster # # # # # # # # # # # # macroman_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -15867,7 +15867,7 @@ SET NAMES macroman;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET macroman COLLATE macroman_general_ci) ENGINE=NDB CHARACTER SET macroman COLLATE macroman_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # macroman_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # macroman_general_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -16097,7 +16097,7 @@ SET NAMES sjis;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_bin) ENGINE=NDB CHARACTER SET sjis COLLATE sjis_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # sjis_bin # # #
+t1 ndbcluster # # # # # # # # # # # # sjis_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -16264,7 +16264,7 @@ SET NAMES sjis;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET sjis COLLATE sjis_japanese_ci) ENGINE=NDB CHARACTER SET sjis COLLATE sjis_japanese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # sjis_japanese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # sjis_japanese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -16431,7 +16431,7 @@ SET NAMES swe7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_bin) ENGINE=NDB CHARACTER SET swe7 COLLATE swe7_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # swe7_bin # # #
+t1 ndbcluster # # # # # # # # # # # # swe7_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -16661,7 +16661,7 @@ SET NAMES swe7;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET swe7 COLLATE swe7_swedish_ci) ENGINE=NDB CHARACTER SET swe7 COLLATE swe7_swedish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # swe7_swedish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # swe7_swedish_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -16891,7 +16891,7 @@ SET NAMES tis620;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_bin) ENGINE=NDB CHARACTER SET tis620 COLLATE tis620_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # tis620_bin # # #
+t1 ndbcluster # # # # # # # # # # # # tis620_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -17121,7 +17121,7 @@ SET NAMES tis620;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET tis620 COLLATE tis620_thai_ci) ENGINE=NDB CHARACTER SET tis620 COLLATE tis620_thai_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # tis620_thai_ci # # #
+t1 ndbcluster # # # # # # # # # # # # tis620_thai_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -17351,7 +17351,7 @@ SET NAMES ujis;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_bin) ENGINE=NDB CHARACTER SET ujis COLLATE ujis_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # ujis_bin # # #
+t1 ndbcluster # # # # # # # # # # # # ujis_bin # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -17455,7 +17455,7 @@ SET NAMES ujis;
CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET ujis COLLATE ujis_japanese_ci) ENGINE=NDB CHARACTER SET ujis COLLATE ujis_japanese_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # ujis_japanese_ci # # #
+t1 ndbcluster # # # # # # # # # # # # ujis_japanese_ci # # #
SELECT HEX(ASCII(a)) AS a_ascii, CHAR_LENGTH(a) AS a_len FROM test.t1 ORDER BY a, ORD(a);
a_ascii a_len
21 1
@@ -17562,7 +17562,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_bin;
@@ -20103,7 +20103,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_czech_ci;
@@ -22644,7 +22644,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_danish_ci;
@@ -25185,7 +25185,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_estonian_ci;
@@ -27726,7 +27726,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_general_ci;
@@ -30267,7 +30267,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_hungarian_ci;
@@ -32808,7 +32808,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_icelandic_ci;
@@ -35349,7 +35349,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_latvian_ci;
@@ -37890,7 +37890,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_lithuanian_ci;
@@ -40431,7 +40431,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_persian_ci;
@@ -42972,7 +42972,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_polish_ci;
@@ -45513,7 +45513,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_roman_ci;
@@ -48054,7 +48054,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_romanian_ci;
@@ -50595,7 +50595,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_slovak_ci;
@@ -53136,7 +53136,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_slovenian_ci;
@@ -55677,7 +55677,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_spanish2_ci;
@@ -58218,7 +58218,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_spanish_ci;
@@ -60759,7 +60759,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_swedish_ci;
@@ -63300,7 +63300,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_turkish_ci;
@@ -65841,7 +65841,7 @@ SET NAMES utf8;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8) ENGINE=NDB CHARACTER SET utf8;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
ALTER TABLE test.t1 CHANGE a a CHAR(4) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci;
@@ -68381,7 +68381,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_bin) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_bin;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_bin # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_bin # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -70920,7 +70920,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_czech_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_czech_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_czech_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_czech_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -73459,7 +73459,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_danish_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_danish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_danish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_danish_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -75998,7 +75998,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_estonian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_estonian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_estonian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_estonian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -78537,7 +78537,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_general_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_general_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_general_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -81076,7 +81076,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_hungarian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_hungarian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_hungarian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_hungarian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -83615,7 +83615,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_icelandic_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_icelandic_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_icelandic_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_icelandic_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -86154,7 +86154,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_latvian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_latvian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_latvian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_latvian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -88693,7 +88693,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_lithuanian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_lithuanian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_lithuanian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_lithuanian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -91232,7 +91232,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_persian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_persian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_persian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_persian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -93771,7 +93771,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_polish_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_polish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_polish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_polish_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -96310,7 +96310,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_roman_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_roman_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_roman_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_roman_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -98849,7 +98849,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_romanian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_romanian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_romanian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_romanian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -101388,7 +101388,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovak_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_slovak_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_slovak_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_slovak_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -103927,7 +103927,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_slovenian_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_slovenian_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_slovenian_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_slovenian_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -106466,7 +106466,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish2_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_spanish2_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_spanish2_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_spanish2_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -109005,7 +109005,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_spanish_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_spanish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_spanish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_spanish_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -111544,7 +111544,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_swedish_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_swedish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_swedish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_swedish_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -114083,7 +114083,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_turkish_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_turkish_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_turkish_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_turkish_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
@@ -116622,7 +116622,7 @@ USE test;
CREATE TABLE test.t1 (a CHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci) ENGINE=NDB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 NDBCLUSTER # # # # # # # # # # # # utf8_unicode_ci # # #
+t1 ndbcluster # # # # # # # # # # # # utf8_unicode_ci # # #
LOAD DATA INFILE
'MYSQL_TEST_DIR/suite/funcs_2/data/charset_utf8.txt' INTO TABLE test.t1;
DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1;
diff --git a/mysql-test/r/im_cmd_line.result b/mysql-test/suite/im/r/im_cmd_line.result
index a862d465904..a862d465904 100644
--- a/mysql-test/r/im_cmd_line.result
+++ b/mysql-test/suite/im/r/im_cmd_line.result
diff --git a/mysql-test/r/im_daemon_life_cycle.result b/mysql-test/suite/im/r/im_daemon_life_cycle.result
index b3afb15f207..b3afb15f207 100644
--- a/mysql-test/r/im_daemon_life_cycle.result
+++ b/mysql-test/suite/im/r/im_daemon_life_cycle.result
diff --git a/mysql-test/r/im_instance_conf.result b/mysql-test/suite/im/r/im_instance_conf.result
index d04ae0270ab..d04ae0270ab 100644
--- a/mysql-test/r/im_instance_conf.result
+++ b/mysql-test/suite/im/r/im_instance_conf.result
diff --git a/mysql-test/r/im_life_cycle.result b/mysql-test/suite/im/r/im_life_cycle.result
index dcabc8cf4f3..dcabc8cf4f3 100644
--- a/mysql-test/r/im_life_cycle.result
+++ b/mysql-test/suite/im/r/im_life_cycle.result
diff --git a/mysql-test/r/im_options.result b/mysql-test/suite/im/r/im_options.result
index 22bd5d5bdf6..22bd5d5bdf6 100644
--- a/mysql-test/r/im_options.result
+++ b/mysql-test/suite/im/r/im_options.result
diff --git a/mysql-test/r/im_utils.result b/mysql-test/suite/im/r/im_utils.result
index 586a5ab6a8d..586a5ab6a8d 100644
--- a/mysql-test/r/im_utils.result
+++ b/mysql-test/suite/im/r/im_utils.result
diff --git a/mysql-test/suite/im/t/disabled.def b/mysql-test/suite/im/t/disabled.def
new file mode 100644
index 00000000000..56828810bf1
--- /dev/null
+++ b/mysql-test/suite/im/t/disabled.def
@@ -0,0 +1,20 @@
+##############################################################################
+#
+# List the test cases that are to be disabled temporarily.
+#
+# Separate the test case name and the comment with ':'.
+#
+# <testcasename> : BUG#<xxxx> <date disabled> <disabler> <comment>
+#
+# Do not use any TAB characters for whitespace.
+#
+##############################################################################
+im_options : Bug#20294 2006-07-24 stewart Instance manager test im_options fails randomly
+im_daemon_life_cycle : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
+im_cmd_line : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
+im_utils : Bug#20294 2007-05-30 alik Instance manager tests fail randomly
+im_instance_conf : Bug#20294 2007-05-30 alik Instance manager tests fail randomly
+im_life_cycle : BUG#27851 Instance manager dies on ASSERT in ~Thread_registry() or from not being able to close a mysqld instance.
+im_instance_conf : BUG#28743 Instance manager generates warnings in test suite
+im_utils : BUG#28743 Instance manager generates warnings in test suite
+
diff --git a/mysql-test/include/im_check_env.inc b/mysql-test/suite/im/t/im_check_env.inc
index 883e5d00fe4..883e5d00fe4 100644
--- a/mysql-test/include/im_check_env.inc
+++ b/mysql-test/suite/im/t/im_check_env.inc
diff --git a/mysql-test/t/im_cmd_line.imtest b/mysql-test/suite/im/t/im_cmd_line.imtest
index 1de43efe92b..e8264b5bb8a 100644
--- a/mysql-test/t/im_cmd_line.imtest
+++ b/mysql-test/suite/im/t/im_cmd_line.imtest
@@ -4,7 +4,7 @@
#
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
###########################################################################
diff --git a/mysql-test/t/im_daemon_life_cycle-im.opt b/mysql-test/suite/im/t/im_daemon_life_cycle-im.opt
index 3a45c7a41f7..3a45c7a41f7 100644
--- a/mysql-test/t/im_daemon_life_cycle-im.opt
+++ b/mysql-test/suite/im/t/im_daemon_life_cycle-im.opt
diff --git a/mysql-test/t/im_daemon_life_cycle.imtest b/mysql-test/suite/im/t/im_daemon_life_cycle.imtest
index c2eac46c1e4..c42ab89cc49 100644
--- a/mysql-test/t/im_daemon_life_cycle.imtest
+++ b/mysql-test/suite/im/t/im_daemon_life_cycle.imtest
@@ -1,3 +1,5 @@
+let $UTIL=$MYSQL_TEST_DIR/suite/im/t;
+
###########################################################################
#
# This file contains test for (1.2) test suite.
@@ -6,11 +8,11 @@
#
###########################################################################
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle im_daemon_life_cycle.imtest started.
+--exec $UTIL/log.sh im_daemon_life_cycle im_daemon_life_cycle.imtest started.
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
# Turn on reconnect, not on by default anymore.
--enable_reconnect
@@ -30,15 +32,15 @@
#
###########################################################################
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Main-test: starting...
+--exec $UTIL/log.sh im_daemon_life_cycle Main-test: starting...
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Killing IM-main...
---exec $MYSQL_TEST_DIR/t/kill_n_check.sh $IM_PATH_PID restarted 55 im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle Killing IM-main...
+--exec $UTIL/kill_n_check.sh $IM_PATH_PID restarted 55 im_daemon_life_cycle
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Waiting for IM-main to start accepting connections...
---exec $MYSQL_TEST_DIR/t/wait_for_socket.sh $EXE_MYSQL $IM_PATH_SOCK $IM_USERNAME $IM_PASSWORD '' 55 im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle Waiting for IM-main to start accepting connections...
+--exec $UTIL/wait_for_socket.sh $EXE_MYSQL $IM_PATH_SOCK $IM_USERNAME $IM_PASSWORD '' 55 im_daemon_life_cycle
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Main-test: done.
+--exec $UTIL/log.sh im_daemon_life_cycle Main-test: done.
###########################################################################
#
@@ -55,29 +57,29 @@
--echo -- Test for BUG#12751
--echo --------------------------------------------------------------------
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle BUG12751: starting...
+--exec $UTIL/log.sh im_daemon_life_cycle BUG12751: starting...
# 1. Start mysqld;
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: starting...
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: starting...
START INSTANCE mysqld2;
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: waiting to start...
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 55 started im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: waiting to start...
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 55 started im_daemon_life_cycle
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: started.
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: started.
# 2. Restart IM-main;
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Killing IM-main...
---exec $MYSQL_TEST_DIR/t/kill_n_check.sh $IM_PATH_PID restarted 55 im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle Killing IM-main...
+--exec $UTIL/kill_n_check.sh $IM_PATH_PID restarted 55 im_daemon_life_cycle
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Waiting for IM-main to start accepting connections...
---exec $MYSQL_TEST_DIR/t/wait_for_socket.sh $EXE_MYSQL $IM_PATH_SOCK $IM_USERNAME $IM_PASSWORD '' 55 im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle Waiting for IM-main to start accepting connections...
+--exec $UTIL/wait_for_socket.sh $EXE_MYSQL $IM_PATH_SOCK $IM_USERNAME $IM_PASSWORD '' 55 im_daemon_life_cycle
# 3. Issue some statement -- connection should be re-established.
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle Checking that IM-main processing commands...
+--exec $UTIL/log.sh im_daemon_life_cycle Checking that IM-main processing commands...
--replace_column 2 STATE 3 VERSION_NUMBER 4 VERSION
SHOW INSTANCE STATUS mysqld1;
@@ -86,13 +88,13 @@ SHOW INSTANCE STATUS mysqld1;
# So, if it we do not stop it, it will be stopped by mysql-test-run.pl with
# warning.
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: stopping...
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: stopping...
STOP INSTANCE mysqld2;
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: waiting to stop...
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 55 stopped im_daemon_life_cycle
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle mysqld2: stopped.
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: waiting to stop...
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 55 stopped im_daemon_life_cycle
+--exec $UTIL/log.sh im_daemon_life_cycle mysqld2: stopped.
###########################################################################
---exec $MYSQL_TEST_DIR/t/log.sh im_daemon_life_cycle BUG12751: done.
+--exec $UTIL/log.sh im_daemon_life_cycle BUG12751: done.
diff --git a/mysql-test/t/im_instance_conf-im.opt b/mysql-test/suite/im/t/im_instance_conf-im.opt
index 34b74ce0c95..34b74ce0c95 100644
--- a/mysql-test/t/im_instance_conf-im.opt
+++ b/mysql-test/suite/im/t/im_instance_conf-im.opt
diff --git a/mysql-test/t/im_instance_conf.imtest b/mysql-test/suite/im/t/im_instance_conf.imtest
index e7f1e511113..b667df41f98 100644
--- a/mysql-test/t/im_instance_conf.imtest
+++ b/mysql-test/suite/im/t/im_instance_conf.imtest
@@ -26,7 +26,7 @@
#
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
###########################################################################
#
diff --git a/mysql-test/t/im_life_cycle-im.opt b/mysql-test/suite/im/t/im_life_cycle-im.opt
index 34b74ce0c95..34b74ce0c95 100644
--- a/mysql-test/t/im_life_cycle-im.opt
+++ b/mysql-test/suite/im/t/im_life_cycle-im.opt
diff --git a/mysql-test/t/im_life_cycle.imtest b/mysql-test/suite/im/t/im_life_cycle.imtest
index 3721b92e2b7..31f63d82505 100644
--- a/mysql-test/t/im_life_cycle.imtest
+++ b/mysql-test/suite/im/t/im_life_cycle.imtest
@@ -1,3 +1,5 @@
+let $UTIL=$MYSQL_TEST_DIR/suite/im/t;
+
###########################################################################
#
# This file contains test for (1.1) test suite.
@@ -6,7 +8,7 @@
#
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
###########################################################################
#
@@ -25,7 +27,7 @@
START INSTANCE mysqld2;
# FIXME: START INSTANCE should be synchronous.
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_life_cycle
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_life_cycle
# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
@@ -58,7 +60,7 @@ SHOW VARIABLES LIKE 'port';
STOP INSTANCE mysqld2;
# FIXME: STOP INSTANCE should be synchronous.
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 stopped im_life_cycle
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 stopped im_life_cycle
# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
@@ -121,7 +123,7 @@ STOP INSTANCE mysqld3;
--echo -- 1.1.6.
--echo --------------------------------------------------------------------
---exec $MYSQL_TEST_DIR/t/kill_n_check.sh $IM_MYSQLD1_PATH_PID restarted 30 im_life_cycle
+--exec $UTIL/kill_n_check.sh $IM_MYSQLD1_PATH_PID restarted 30 im_life_cycle
# Give some time to IM to detect that mysqld was restarted. It should be
# longer than monitoring interval.
@@ -143,7 +145,7 @@ SHOW INSTANCES;
START INSTANCE mysqld2;
# FIXME: START INSTANCE should be synchronous.
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_life_cycle
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_life_cycle
# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
@@ -151,7 +153,7 @@ START INSTANCE mysqld2;
# mysqld has started.
# SHOW INSTANCES;
---exec $MYSQL_TEST_DIR/t/kill_n_check.sh $IM_MYSQLD2_PATH_PID killed 10 im_life_cycle
+--exec $UTIL/kill_n_check.sh $IM_MYSQLD2_PATH_PID killed 10 im_life_cycle
# FIXME: Result of SHOW INSTANCES here is not deterministic unless START
# INSTANCE is synchronous. Even waiting for mysqld to start by looking at
diff --git a/mysql-test/t/im_options-im.opt b/mysql-test/suite/im/t/im_options-im.opt
index 34b74ce0c95..34b74ce0c95 100644
--- a/mysql-test/t/im_options-im.opt
+++ b/mysql-test/suite/im/t/im_options-im.opt
diff --git a/mysql-test/t/im_options.imtest b/mysql-test/suite/im/t/im_options.imtest
index 8f9bed16473..d251b97d8e7 100644
--- a/mysql-test/t/im_options.imtest
+++ b/mysql-test/suite/im/t/im_options.imtest
@@ -32,7 +32,7 @@
#
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
###########################################################################
#
diff --git a/mysql-test/t/im_utils-im.opt b/mysql-test/suite/im/t/im_utils-im.opt
index 34b74ce0c95..34b74ce0c95 100644
--- a/mysql-test/t/im_utils-im.opt
+++ b/mysql-test/suite/im/t/im_utils-im.opt
diff --git a/mysql-test/t/im_utils.imtest b/mysql-test/suite/im/t/im_utils.imtest
index 0866b87204a..b935634e96c 100644
--- a/mysql-test/t/im_utils.imtest
+++ b/mysql-test/suite/im/t/im_utils.imtest
@@ -6,7 +6,9 @@
#
###########################################################################
---source include/im_check_env.inc
+--source suite/im/t/im_check_env.inc
+
+let $UTIL=$MYSQL_TEST_DIR/suite/im/t;
###########################################################################
@@ -31,10 +33,10 @@ SHOW INSTANCE OPTIONS mysqld2;
#
START INSTANCE mysqld2;
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_utils
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 started im_utils
STOP INSTANCE mysqld2;
---exec $MYSQL_TEST_DIR/t/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 stopped im_utils
+--exec $UTIL/wait_for_process.sh $IM_MYSQLD2_PATH_PID 30 stopped im_utils
#
# Check 'SHOW LOG FILES' command:
diff --git a/mysql-test/t/kill_n_check.sh b/mysql-test/suite/im/t/kill_n_check.sh
index 6f2a0825dcd..6f2a0825dcd 100755
--- a/mysql-test/t/kill_n_check.sh
+++ b/mysql-test/suite/im/t/kill_n_check.sh
diff --git a/mysql-test/t/log.sh b/mysql-test/suite/im/t/log.sh
index 33ef6d6701f..33ef6d6701f 100755
--- a/mysql-test/t/log.sh
+++ b/mysql-test/suite/im/t/log.sh
diff --git a/mysql-test/t/utils.sh b/mysql-test/suite/im/t/utils.sh
index b3f4744947d..b3f4744947d 100644
--- a/mysql-test/t/utils.sh
+++ b/mysql-test/suite/im/t/utils.sh
diff --git a/mysql-test/t/wait_for_process.sh b/mysql-test/suite/im/t/wait_for_process.sh
index 2143ab2002f..2143ab2002f 100755
--- a/mysql-test/t/wait_for_process.sh
+++ b/mysql-test/suite/im/t/wait_for_process.sh
diff --git a/mysql-test/t/wait_for_socket.sh b/mysql-test/suite/im/t/wait_for_socket.sh
index 2fa7d5c5b7e..2fa7d5c5b7e 100755
--- a/mysql-test/t/wait_for_socket.sh
+++ b/mysql-test/suite/im/t/wait_for_socket.sh
diff --git a/mysql-test/suite/ndb/r/ndb_dd_ddl.result b/mysql-test/suite/ndb/r/ndb_dd_ddl.result
index 33536038b1b..d065edfee5d 100644
--- a/mysql-test/suite/ndb/r/ndb_dd_ddl.result
+++ b/mysql-test/suite/ndb/r/ndb_dd_ddl.result
@@ -222,19 +222,17 @@ ENGINE NDB;
DROP LOGFILE GROUP lg1
ENGINE NDB;
**** End = And No = ****
-create table t1 (a int primary key) engine = myisam;
-create logfile group lg1 add undofile 'MYSQLTEST_VARDIR/master-data/test/t1.frm' initial_size 1M undo_buffer_size = 1M engine=ndb;;
+create logfile group lg1 add undofile 'MYSQLTEST_VARDIR/tmp/t1.frm' initial_size 1M undo_buffer_size = 1M engine=ndb;;
ERROR HY000: Failed to create UNDOFILE
create logfile group lg1
add undofile 'undofile.dat'
initial_size 1M
undo_buffer_size = 1M
engine=ndb;
-create tablespace ts1 add datafile 'MYSQLTEST_VARDIR/master-data/test/t1.frm' use logfile group lg1 initial_size 1M engine ndb;;
+create tablespace ts1 add datafile 'MYSQLTEST_VARDIR/tmp/t1.frm' use logfile group lg1 initial_size 1M engine ndb;;
ERROR HY000: Failed to create DATAFILE
drop tablespace ts1
engine ndb;
ERROR HY000: Failed to drop TABLESPACE
drop logfile group lg1
engine ndb;
-drop table t1;
diff --git a/mysql-test/suite/ndb/t/disabled.def b/mysql-test/suite/ndb/t/disabled.def
index 023c9c47210..b97cb9cecc9 100644
--- a/mysql-test/suite/ndb/t/disabled.def
+++ b/mysql-test/suite/ndb/t/disabled.def
@@ -22,4 +22,4 @@ ndb_partition_error2 : HF is not sure if the test can work as internded on all
#ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events
#ndb_binlog_discover : bug#21806 2006-08-24
#ndb_autodiscover3 : bug#21806
-ndb_autodiscover3 : Bug#20872 2007-07-15 ingo master*.err: miscellaneous error messages
+#ndb_autodiscover3 : Bug#20872 2007-07-15 ingo master*.err: miscellaneous error messages
diff --git a/mysql-test/suite/ndb/t/ndb_dd_ddl.test b/mysql-test/suite/ndb/t/ndb_dd_ddl.test
index aa692385b07..d6de7c45326 100644
--- a/mysql-test/suite/ndb/t/ndb_dd_ddl.test
+++ b/mysql-test/suite/ndb/t/ndb_dd_ddl.test
@@ -333,11 +333,18 @@ ENGINE NDB;
###
#
# bug#16341
-create table t1 (a int primary key) engine = myisam;
+#create table t1 (a int primary key) engine = myisam;
+# 2007-08-22 Jeb
+# Removed the use of create table and manually
+# created the file to cause failure due to
+# inconsistant results on other OS
+# see #bug30559
+
+--exec touch $MYSQLTEST_VARDIR/tmp/t1.frm
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error ER_CREATE_FILEGROUP_FAILED
---eval create logfile group lg1 add undofile '$MYSQLTEST_VARDIR/master-data/test/t1.frm' initial_size 1M undo_buffer_size = 1M engine=ndb;
+--eval create logfile group lg1 add undofile '$MYSQLTEST_VARDIR/tmp/t1.frm' initial_size 1M undo_buffer_size = 1M engine=ndb;
create logfile group lg1
add undofile 'undofile.dat'
@@ -347,7 +354,7 @@ engine=ndb;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error ER_CREATE_FILEGROUP_FAILED
---eval create tablespace ts1 add datafile '$MYSQLTEST_VARDIR/master-data/test/t1.frm' use logfile group lg1 initial_size 1M engine ndb;
+--eval create tablespace ts1 add datafile '$MYSQLTEST_VARDIR/tmp/t1.frm' use logfile group lg1 initial_size 1M engine ndb;
--error ER_DROP_FILEGROUP_FAILED
drop tablespace ts1
@@ -356,8 +363,8 @@ engine ndb;
drop logfile group lg1
engine ndb;
-drop table t1;
-
+#drop table t1;
+--exec rm $MYSQLTEST_VARDIR/tmp/t1.frm
# End 5.1 test
diff --git a/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc b/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc
index ec258b5387b..cba5c47f01b 100644
--- a/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc
+++ b/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc
@@ -17,6 +17,18 @@
--echo --- All SQL functions should be rejected, otherwise BUG (see 18198)
--echo -------------------------------------------------------------------------
+let $sqlfunc = ascii(col1);
+let $valsqlfunc = ascii('a');
+let $coltype = char(30);
+--source suite/parts/inc/partition_blocked_sql_funcs.inc
+# --source include/partition_blocked_sql_funcs.inc
+
+let $sqlfunc = ord(col1);
+let $valsqlfunc = ord('a');
+let $coltype = char(30);
+--source suite/parts/inc/partition_blocked_sql_funcs.inc
+# --source include/partition_blocked_sql_funcs.inc
+
let $sqlfunc = greatest(col1,15);
let $valsqlfunc = greatest(1,15);
let $coltype = int;
@@ -151,12 +163,6 @@ let $coltype = int;
--source suite/parts/inc/partition_blocked_sql_funcs.inc
# --source include/partition_blocked_sql_funcs.inc
-let $sqlfunc = datediff(col1,col1);
-let $valsqlfunc = datediff('1997-11-30 23:59:59','1997-12-31');
-let $coltype = datetime;
---source suite/parts/inc/partition_blocked_sql_funcs.inc
-# --source include/partition_blocked_sql_funcs.inc
-
let $sqlfunc = period_add(col1,5);
let $valsqlfunc = period_add(9804,5);
let $coltype = datetime;
@@ -190,6 +196,12 @@ let $coltype = datetime;
--source suite/parts/inc/partition_blocked_sql_funcs.inc
# --source include/partition_blocked_sql_funcs.inc
+let $sqlfunc = weekofyear(col1);
+let $valsqlfunc = weekofyear('2002-05-01');
+let $coltype = datetime;
+--source suite/parts/inc/partition_blocked_sql_funcs.inc
+# --source include/partition_blocked_sql_funcs.inc
+
let $sqlfunc = cast(col1 as signed);
let $valsqlfunc = cast(123 as signed);
let $coltype = varchar(30);
diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc b/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc
index 4dc0e7bdad3..4761d15c6d3 100644
--- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc
+++ b/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc
@@ -40,61 +40,42 @@ let $val4 = 15 ;
--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = ascii(col1);
-let $valsqlfunc = ascii('5');
-let $coltype = char(1);
-let $infile = part_supported_sql_funcs_int_ch1.inc;
-let $val1 = '1';
-let $val2 = '9';
-let $val3 = '3';
-let $val4 = '8';
---source suite/parts/inc/partition_supported_sql_funcs.inc
-# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = cast(ceiling(col1) as signed integer);
-let $valsqlfunc = cast(ceiling(15) as signed integer);
+let $sqlfunc = ceiling(col1);
+let $valsqlfunc = ceiling(15);
let $coltype = float(7,4);
let $infile = part_supported_sql_funcs_int_float.inc;
let $val1 = 5.1230;
let $val2 = 13.345;
let $val3 = 17.987;
let $val4 = 15.654 ;
---source suite/parts/inc/partition_supported_sql_funcs.inc
+# DISABLED due to bug 30577
+#--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = cast(floor(col1) as signed);
-let $valsqlfunc = cast(floor(15.123) as signed);
+let $sqlfunc = floor(col1);
+let $valsqlfunc = floor(15.123);
let $coltype = float(7,4);
let $infile = part_supported_sql_funcs_int_float.inc;
let $val1 = 5.1230;
let $val2 = 13.345;
let $val3 = 17.987;
let $val4 = 15.654 ;
---source suite/parts/inc/partition_supported_sql_funcs.inc
+# DISABLED due to bug 30577
+#--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = cast(mod(col1,10) as signed);
-let $valsqlfunc = cast(mod(15,10) as signed);
-let $coltype = float(7,4);
-let $infile = part_supported_sql_funcs_int_float.inc;
-let $val1 = 5.0000;
+let $sqlfunc = mod(col1,10);
+let $valsqlfunc = mod(15,10);
+let $coltype = int;
+let $infile = part_supported_sql_funcs_int_int.inc;
+let $val1 = 5;
let $val2 = 19;
let $val3 = 17;
let $val4 = 15 ;
--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = ord(col1);
-let $valsqlfunc = ord('a');
-let $coltype = char(3);
-let $infile = part_supported_sql_funcs_int_ch1.inc;
-let $val1 = '1';
-let $val2 = '9';
-let $val3 = '3';
-let $val4 = '8';
---source suite/parts/inc/partition_supported_sql_funcs.inc
-# --source include/partition_supported_sql_funcs.inc
-
let $sqlfunc = day(col1);
let $valsqlfunc = day('2006-12-21');
let $coltype = date;
@@ -243,25 +224,26 @@ let $val4 = '2006-02-06';
--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = weekday(col1);
-let $valsqlfunc = weekday('2006-10-14');
+# DATEDIFF() is implemented as (TO_DAYS(d1) - TO_DAYS(d2))
+let $sqlfunc = datediff(col1, '2006-01-01');
+let $valsqlfunc = datediff('2006-02-02', '2006-01-01');
let $coltype = date;
let $infile = part_supported_sql_funcs_int_date.inc;
-let $val1 = '2006-12-03';
-let $val2 = '2006-11-17';
-let $val3 = '2006-05-25';
+let $val1 = '2006-02-03';
+let $val2 = '2006-01-17';
+let $val3 = '2006-01-25';
let $val4 = '2006-02-06';
--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
-let $sqlfunc = weekofyear(col1);
-let $valsqlfunc = weekofyear('2006-02-14');
+let $sqlfunc = weekday(col1);
+let $valsqlfunc = weekday('2006-10-14');
let $coltype = date;
let $infile = part_supported_sql_funcs_int_date.inc;
-let $val1 = '2006-01-03';
-let $val2 = '2006-03-17';
+let $val1 = '2006-12-03';
+let $val2 = '2006-11-17';
let $val3 = '2006-05-25';
-let $val4 = '2006-09-06';
+let $val4 = '2006-02-06';
--source suite/parts/inc/partition_supported_sql_funcs.inc
# --source include/partition_supported_sql_funcs.inc
diff --git a/mysql-test/suite/parts/inc/partition_alter3.inc b/mysql-test/suite/parts/inc/partition_alter3.inc
index 48ad61ebe08..4b1539f4260 100644
--- a/mysql-test/suite/parts/inc/partition_alter3.inc
+++ b/mysql-test/suite/parts/inc/partition_alter3.inc
@@ -43,16 +43,16 @@ SELECT IF(9999 - 1000 + 1 > @max_row, @max_row , 9999 - 1000 + 1)
ALTER TABLE t1 ADD PARTITION (PARTITION part2);
#
--echo # 1.1.2 Assign HASH partitioning
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
--source include/partition_layout.inc
--source suite/parts/inc/partition_check_read1.inc
#
--echo # 1.1.3 Assign other HASH partitioning to already partitioned table
--echo # + test and switch back + test
-ALTER TABLE t1 PARTITION BY HASH(CAST(f_varchar AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(DAYOFYEAR(f_date));
--source include/partition_layout.inc
--source suite/parts/inc/partition_check_read1.inc
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
--source include/partition_layout.inc
--source suite/parts/inc/partition_check_read1.inc
#
diff --git a/mysql-test/suite/parts/inc/partition_alter_1.inc b/mysql-test/suite/parts/inc/partition_alter_1.inc
index 542a67ccbef..1498970547a 100644
--- a/mysql-test/suite/parts/inc/partition_alter_1.inc
+++ b/mysql-test/suite/parts/inc/partition_alter_1.inc
@@ -36,8 +36,9 @@
eval $insert_first_half;
# Possible/Expected return codes for ALTER TABLE ...
# 0
-# 1491: A PRIMARY KEY need to include all fields in the partition function
-# A UNIQUE INDEX need to include all fields in the partition function
+# 1030: ER_GET_ERRNO
+# 1500: ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+# 1504: ER_DROP_PARTITION_NON_EXISTENT
--disable_abort_on_error
eval $alter;
--enable_abort_on_error
@@ -47,11 +48,11 @@ if ($no_debug)
}
eval SET @my_errno = $mysql_errno;
let $run_test= `SELECT @my_errno = 0`;
-let $unexpected_error= `SELECT @my_errno NOT IN (0,1030,1491,1495)`;
+let $unexpected_error= `SELECT @my_errno NOT IN (0,1030,1500,1504)`;
if ($unexpected_error)
{
--echo # The last command got an unexepected error response.
- --echo # Expected/handled SQL codes are 0,1030,1491,1495
+ --echo # Expected/handled SQL codes are 0,1030,1500,1504
SELECT '# SQL code we got was: ' AS "", @my_errno AS "";
--echo # Sorry, have to abort.
exit;
diff --git a/mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc b/mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc
index 7843a44134c..3e6876662fe 100644
--- a/mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc
+++ b/mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc
@@ -15,8 +15,7 @@
--echo -------------------------------------------------------------------------
--echo --- $sqlfunc in partition with coltype $coltype
--echo -------------------------------------------------------------------------
---echo must all fail! (delete 0 and comment char, if bug fixed)
---disable_abort_on_error
+--echo must all fail!
--disable_warnings
drop table if exists t1 ;
drop table if exists t2 ;
@@ -26,32 +25,31 @@ drop table if exists t5 ;
drop table if exists t6 ;
--enable_warnings
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t1 (col1 $coltype) engine=$engine
partition by range($sqlfunc)
(partition p0 values less than (15),
partition p1 values less than (31));
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t2 (col1 $coltype) engine=$engine
partition by list($sqlfunc)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t3 (col1 $coltype) engine=$engine
partition by hash($sqlfunc);
---enable_abort_on_error
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t4 (colint int, col1 $coltype) engine=$engine
partition by range(colint)
subpartition by hash($sqlfunc) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t5 (colint int, col1 $coltype) engine=$engine
partition by list(colint)
subpartition by hash($sqlfunc) subpartitions 2
@@ -59,7 +57,7 @@ subpartition by hash($sqlfunc) subpartitions 2
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t6 (colint int, col1 $coltype) engine=$engine
partition by range(colint)
(partition p0 values less than ($valsqlfunc),
@@ -75,50 +73,44 @@ drop table if exists t55 ;
drop table if exists t66 ;
--enable_warnings
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t11 (col1 $coltype) engine=$engine ;
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t22 (col1 $coltype) engine=$engine ;
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t33 (col1 $coltype) engine=$engine ;
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t44 (colint int, col1 $coltype) engine=$engine ;
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t55 (colint int, col1 $coltype) engine=$engine ;
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval create table t66 (colint int, col1 $coltype) engine=$engine ;
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t11
partition by range($sqlfunc)
(partition p0 values less than (15),
partition p1 values less than (31));
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t22
partition by list($sqlfunc)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-#--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t33
partition by hash($sqlfunc);
--enable_abort_on_error
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t44
partition by range(colint)
subpartition by hash($sqlfunc) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t55
partition by list(colint)
subpartition by hash($sqlfunc) subpartitions 2
@@ -126,7 +118,7 @@ subpartition by hash($sqlfunc) subpartitions 2
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
---error 0,ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED,ER_PARSE_ERROR
eval alter table t66
partition by range(colint)
(partition p0 values less than ($valsqlfunc),
diff --git a/mysql-test/suite/parts/inc/partition_check.inc b/mysql-test/suite/parts/inc/partition_check.inc
index 698e9611af1..6f03ed58241 100644
--- a/mysql-test/suite/parts/inc/partition_check.inc
+++ b/mysql-test/suite/parts/inc/partition_check.inc
@@ -156,8 +156,8 @@ if ($run)
# partitioning mechanism.
# Sideeffect: Attempt to INSERT one record
# DUPLICATE KEY will appear if we have UNIQUE columns
-# 1022: Can't write; duplicate key in table 't1' UIDX/PK(f_int1)
-# 1062: Duplicate entry '2' for key 1 UIDX/PK(f_int2)
+# 1022: ER_DUP_KEY
+# 1062: ER_DUP_ENTRY
--disable_abort_on_error
INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
SELECT f_int1, f_int1, CAST(f_int1 AS CHAR),
@@ -200,7 +200,8 @@ if ($any_unique)
## 1.3.1 Check, if f_int1 is UNIQUE
# Sideeffect: Attempt to INSERT one record
# DUPLICATE KEY will appear if we have UNIQUE columns
- # 1022: Can't write; duplicate key in table 't1' UIDX/PK
+ # 1022: ER_DUP_KEY
+ # 1062: ER_DUP_ENTRY
--disable_abort_on_error
INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig)
SELECT f_int1, 2 * @max_row + f_int1, CAST((2 * @max_row + f_int1) AS CHAR),
@@ -494,8 +495,9 @@ WHERE f_charbig = '#SINGLE#' AND f_int1 IN (-1,@cur_value);
# 4.7 Insert one record with such a big value for f_int1, so that in case
# - f_int1 is used within the partitioning algorithm
# - we use range partitioning
-# we get error ER_NO_PARTITION_FOR_GIVEN_VALUE (1514)
+# we get error ER_NO_PARTITION_FOR_GIVEN_VALUE (1523)
# "Table has no partition for value ...."
+# or ER_SAME_NAME_PARTITION (1514)
--disable_abort_on_error
eval INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#$max_int_4##';
--enable_abort_on_error
@@ -504,11 +506,11 @@ if ($no_debug)
--disable_query_log
}
eval SET @my_errno = $mysql_errno;
-let $unexpected_error= `SELECT @my_errno NOT IN (0,1505,1514)`;
+let $unexpected_error= `SELECT @my_errno NOT IN (0,1514,1523)`;
if ($unexpected_error)
{
--echo # The last command got an unexepected error response.
- --echo # Expected/handled SQL codes are 0,1514
+ --echo # Expected/handled SQL codes are 0,1514,1523
SELECT '# SQL code we got was: ' AS "", @my_errno AS "";
--echo # Sorry, have to abort.
exit;
@@ -555,8 +557,8 @@ INSERT t1 SET f_int1 = 0 , f_int2 = 0,
# f1 "=" NULL is a delicate value which might stress the partitioning
# mechanism if the result of the expression in the partitioning algorithm
# becomes NULL.
-# Not: This INSERT will fail, if f_int1 is PRIMARY KEY or UNIQUE INDEX
-# 1048: Column 'f_int1' cannot be null
+# This INSERT will fail, if f_int1 is PRIMARY KEY or UNIQUE INDEX
+# 1048: ER_BAD_NULL_ERROR
--disable_abort_on_error
INSERT INTO t1
diff --git a/mysql-test/suite/parts/inc/partition_date.inc b/mysql-test/suite/parts/inc/partition_date.inc
index b58a7598236..45f9012604c 100644
--- a/mysql-test/suite/parts/inc/partition_date.inc
+++ b/mysql-test/suite/parts/inc/partition_date.inc
@@ -49,7 +49,7 @@ select * from t2;
drop table t2;
eval create table t3 (a date not null, primary key(a)) engine=$engine
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -69,7 +69,7 @@ select * from t3;
drop table t3;
eval create table t4 (a date not null, primary key(a)) engine=$engine
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
diff --git a/mysql-test/suite/parts/inc/partition_datetime.inc b/mysql-test/suite/parts/inc/partition_datetime.inc
index 94c9d3d75da..e948e827b4e 100644
--- a/mysql-test/suite/parts/inc/partition_datetime.inc
+++ b/mysql-test/suite/parts/inc/partition_datetime.inc
@@ -46,7 +46,7 @@ select * from t2;
drop table t2;
eval create table t3 (a datetime not null, primary key(a)) engine=$engine
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -66,7 +66,7 @@ select * from t3;
drop table t3;
eval create table t4 (a datetime not null, primary key(a)) engine=$engine
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
diff --git a/mysql-test/suite/parts/inc/partition_decimal.inc b/mysql-test/suite/parts/inc/partition_decimal.inc
index eb35416f395..09eb9b10831 100644
--- a/mysql-test/suite/parts/inc/partition_decimal.inc
+++ b/mysql-test/suite/parts/inc/partition_decimal.inc
@@ -47,8 +47,15 @@ dec $count;
select count(*) from t2;
drop table t2;
+# Bug 30577: FLOOR() and CEILING() not usable as partition functions
+# Partition functions are required to return INT_RESULT; FLOOR() and
+# CEILING() do not, unless they have an INT argument. Disable this
+# portion of the test until bug 30577 is fixed.
+
+--disable_parsing
+
eval create table t3 (a decimal(18,9) not null, primary key(a)) engine=$engine
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
+partition by range (floor(a)) subpartition by key (a) subpartitions 2 (
partition pa2 values less than (2),
partition pa4 values less than (4),
partition pa6 values less than (6),
@@ -70,7 +77,7 @@ select count(*) from t3;
drop table t3;
eval create table t4 (a decimal(18,9) not null, primary key(a)) engine=$engine
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
+partition by list (floor(a)) subpartition by key (a) subpartitions 2 (
partition pa2 values in (1,2),
partition pa4 values in (3,4),
partition pa6 values in (5,6),
@@ -90,3 +97,6 @@ dec $count;
--enable_query_log
select count(*) from t4;
drop table t4;
+
+# Disabled due to Bug 30577
+--enable_parsing
diff --git a/mysql-test/suite/parts/inc/partition_directory.inc b/mysql-test/suite/parts/inc/partition_directory.inc
index 2c765e1f5ab..17748df4f4d 100644
--- a/mysql-test/suite/parts/inc/partition_directory.inc
+++ b/mysql-test/suite/parts/inc/partition_directory.inc
@@ -29,9 +29,9 @@ let $partitioning= ;
if ($with_partitioning)
{
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
+--disable_query_log
if ($with_directories)
{
---disable_query_log
eval SET @aux =
'PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1
@@ -39,7 +39,6 @@ $index_directory,
PARTITION p2
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
}
eval CREATE TABLE t1 (
@@ -47,6 +46,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -54,9 +54,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY KEY(f_int1) PARTITIONS 5';
let $partitioning= `SELECT @aux`;
@@ -76,7 +76,6 @@ PARTITION p4,
PARTITION p5
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
}
eval CREATE TABLE t1 (
@@ -84,6 +83,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -91,9 +91,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3)
@@ -119,6 +119,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -126,9 +127,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE
+--disable_query_log
if ($with_partitioning)
{
-#--disable_query_log
eval SET @aux = 'PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0)
$index_directory,
@@ -143,13 +144,13 @@ $data_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE
$index_directory)';
let $partitioning= `SELECT @aux`;
-#--enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -157,9 +158,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0)
@@ -171,13 +172,13 @@ PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -185,9 +186,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0)
$data_directory
@@ -202,13 +203,13 @@ $index_directory
PARTITION part4 VALUES LESS THAN $MAX_VALUE
(SUBPARTITION subpart41, SUBPARTITION subpart42))';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -216,9 +217,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0)
@@ -246,13 +247,13 @@ eval SET @aux =
$data_directory
$index_directory))';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
diff --git a/mysql-test/suite/parts/inc/partition_double.inc b/mysql-test/suite/parts/inc/partition_double.inc
index 96cf7fd4871..57be826bac7 100644
--- a/mysql-test/suite/parts/inc/partition_double.inc
+++ b/mysql-test/suite/parts/inc/partition_double.inc
@@ -48,8 +48,15 @@ select count(*) from t2;
drop table t2;
+# Bug 30577: FLOOR() and CEILING() not usable as partition functions
+# Partition functions are required to return INT_RESULT; FLOOR() and
+# CEILING() do not, unless they have an INT argument. Disable this
+# portion of the test until bug 30577 is fixed.
+
+--disable_parsing
+
eval create table t3 (a double not null, primary key(a)) engine=$engine
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
+partition by range (floor(a)) subpartition by key (a) subpartitions 3 (
partition pa1 values less than (3),
partition pa3 values less than (6),
partition pa10 values less than (10)
@@ -69,7 +76,7 @@ select * from t3;
drop table t3;
eval create table t4 (a double not null, primary key(a)) engine=$engine
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
+partition by list (floor(a)) subpartition by key (a) subpartitions 3 (
partition pa1 values in (1,2,3),
partition pa3 values in (4,5,6),
partition pa10 values in (7,8,9,10)
@@ -87,3 +94,6 @@ dec $count;
select count(*) from t4;
select * from t4;
drop table t4;
+
+# Disabled due to Bug 30577
+--enable_parsing
diff --git a/mysql-test/suite/parts/inc/partition_enum.inc b/mysql-test/suite/parts/inc/partition_enum.inc
index f8fcb1110ae..67e790743f0 100644
--- a/mysql-test/suite/parts/inc/partition_enum.inc
+++ b/mysql-test/suite/parts/inc/partition_enum.inc
@@ -53,7 +53,7 @@ eval create table t3 (a enum (
'M','N','O','P','Q','R','S','T','U','V','W','X',
'Y','Z'
) not null, primary key(a)) engine=$engine
-partition by range (cast(a as unsigned)) subpartition by key (a) subpartitions 3 (
+partition by range (a) subpartition by key (a) subpartitions 3 (
partition pa9 values less than (10),
partition pa18 values less than (19),
partition pa27 values less than (28),
@@ -72,28 +72,3 @@ select count(*) from t3;
select * from t3;
drop table t3;
-eval create table t4 (a enum (
-'1','2','3','4','5','6','7','8','9','0',
-'A','B','C','D','E','F','G','H','I','J','K','L',
-'M','N','O','P','Q','R','S','T','U','V','W','X',
-'Y','Z'
-) not null, primary key(a)) engine=$engine
-partition by list (cast(a as unsigned)) subpartition by key (a) subpartitions 3 (
-partition pa9 values in (1,2,3,4,5,6,7,8,9),
-partition pa18 values in (10,11,12,13,14,15,16,17,18),
-partition pa27 values in (19,20,21,22,23,24,25,26,27),
-partition pa36 values in (28,29,30,31,32,33,34,35,36)
-);
-show create table t4;
-let $letter=36;
---echo $count inserts;
-#--disable_query_log
-while ($letter)
-{
-#eval insert into t4 values ($letter);
-dec $letter;
-}
-select count(*) from t4;
-select * from t4;
-drop table t4;
-
diff --git a/mysql-test/suite/parts/inc/partition_float.inc b/mysql-test/suite/parts/inc/partition_float.inc
index 25c59a10153..45c2f16ac98 100644
--- a/mysql-test/suite/parts/inc/partition_float.inc
+++ b/mysql-test/suite/parts/inc/partition_float.inc
@@ -51,8 +51,15 @@ dec $count;
select count(*) from t2;
drop table t2;
+# Bug 30577: FLOOR() and CEILING() not usable as partition functions
+# Partition functions are required to return INT_RESULT; FLOOR() and
+# CEILING() do not, unless they have an INT argument. Disable this
+# portion of the test until bug 30577 is fixed.
+
+--disable_parsing
+
eval create table t3 (a float not null, primary key(a)) engine=$engine
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
+partition by range (floor(a)) subpartition by key (a) subpartitions 3 (
partition pa1 values less than (3),
partition pa3 values less than (6),
partition pa10 values less than (10)
@@ -72,7 +79,7 @@ select * from t3;
drop table t3;
eval create table t4 (a float not null, primary key(a)) engine=$engine
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
+partition by list (floor(a)) subpartition by key (a) subpartitions 3 (
partition pa1 values in (1,2,3),
partition pa3 values in (4,5,6),
partition pa10 values in (7,8,9,10)
@@ -90,3 +97,6 @@ dec $count;
select count(*) from t4;
select * from t4;
drop table t4;
+
+# Disabled due to Bug 30577
+--enable_parsing
diff --git a/mysql-test/suite/parts/inc/partition_layout_check1.inc b/mysql-test/suite/parts/inc/partition_layout_check1.inc
index fe0d9d138a0..d3441b3d886 100644
--- a/mysql-test/suite/parts/inc/partition_layout_check1.inc
+++ b/mysql-test/suite/parts/inc/partition_layout_check1.inc
@@ -56,6 +56,7 @@ eval INSERT INTO t0_definition SET state = 'old',
file_list = $file_list;
# Print the create table statement into the protocol
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SELECT create_command FROM t0_definition WHERE state = 'old';
if ($do_file_tests)
{
diff --git a/mysql-test/suite/parts/inc/partition_layout_check2.inc b/mysql-test/suite/parts/inc/partition_layout_check2.inc
index c28387cccd0..8a45613559d 100644
--- a/mysql-test/suite/parts/inc/partition_layout_check2.inc
+++ b/mysql-test/suite/parts/inc/partition_layout_check2.inc
@@ -55,6 +55,7 @@ let $run= `SELECT @aux`;
if ($run)
{
--vertical_results
+ --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SELECT state,
REPLACE(create_command,'\n',' ') AS "Table definition",
REPLACE(file_list ,'\n',' ') AS "File list"
diff --git a/mysql-test/suite/parts/inc/partition_methods1.inc b/mysql-test/suite/parts/inc/partition_methods1.inc
index bec0c747f28..6e49c51cc3d 100644
--- a/mysql-test/suite/parts/inc/partition_methods1.inc
+++ b/mysql-test/suite/parts/inc/partition_methods1.inc
@@ -44,9 +44,9 @@ let $partitioning= ;
if ($with_partitioning)
{
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
+--disable_query_log
if ($with_directories)
{
---disable_query_log
eval SET @aux =
'PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1
@@ -56,7 +56,6 @@ PARTITION p2
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
}
eval CREATE TABLE t1 (
@@ -64,6 +63,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -71,15 +71,14 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY KEY(f_int1) PARTITIONS 5';
let $partitioning= `SELECT @aux`;
if ($with_directories)
{
---disable_query_log
eval SET @aux =
'PARTITION BY HASH(f_int1) PARTITIONS 5
(PARTITION p1
@@ -98,7 +97,6 @@ PARTITION p5
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
}
eval CREATE TABLE t1 (
@@ -106,6 +104,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -113,9 +112,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3)
@@ -141,6 +140,7 @@ $column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -148,9 +148,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE
+--disable_query_log
if ($with_partitioning)
{
-#--disable_query_log
eval SET @aux = 'PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0)
$data_directory
@@ -171,13 +171,13 @@ PARTITION partf VALUES LESS THAN $MAX_VALUE
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
-#--enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -185,9 +185,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0)
@@ -203,13 +203,13 @@ PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -217,9 +217,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0)
$data_directory
@@ -238,13 +238,13 @@ $data_directory
$index_directory
(SUBPARTITION subpart41, SUBPARTITION subpart42))';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -252,9 +252,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0)
@@ -290,13 +290,13 @@ eval SET @aux =
$data_directory
$index_directory))';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
@@ -304,9 +304,9 @@ DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY KEY
+--disable_query_log
if ($with_partitioning)
{
---disable_query_log
eval SET @aux =
'PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
@@ -320,13 +320,13 @@ SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
$data_directory
$index_directory)';
let $partitioning= `SELECT @aux`;
---enable_query_log
}
eval CREATE TABLE t1 (
$column_list
$unique
)
$partitioning;
+--enable_query_log
eval $insert_all;
--source suite/parts/inc/partition_check.inc
# --source include/partition_check.inc
diff --git a/mysql-test/suite/parts/inc/partition_set.inc b/mysql-test/suite/parts/inc/partition_set.inc
index 76fc1aea4ba..292a28e7e1a 100644
--- a/mysql-test/suite/parts/inc/partition_set.inc
+++ b/mysql-test/suite/parts/inc/partition_set.inc
@@ -43,41 +43,3 @@ insert into t2 values ('1,2,3'),('2,3,4'),('3,4,5'),('4,5,6'),('5,6,7'),('6,7,8'
select count(*) from t2;
select * from t2 order by a;
drop table t2;
-
-eval create table t3 (a set (
-'1','2','3','4','5','6','7','8','9','0'
-) not null, primary key(a)) engine=$engine
-partition by range (cast(a as unsigned)) subpartition by key (a) subpartitions 3 (
-partition pa9 values less than (10),
-partition pa18 values less than (19),
-partition pa27 values less than (28),
-partition pa36 values less than (37),
-partition pa64 values less than (65),
-partition pa128 values less than (129),
-partition pa256 values less than (257),
-partition pa512 values less than (513),
-partition pa768 values less than (769),
-partition pa1024 values less than (1025)
-);
-show create table t3;
-#insert into t3 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0');
-#insert into t3 values ('1,2'),('2,3'),('3,4'),('4,5'),('5,6'),('6,7'),('7,8'),('8,9'),('9,0'),('0,1');
-#insert into t3 values ('1,2,3'),('2,3,4'),('3,4,5'),('4,5,6'),('5,6,7'),('6,7,8'),('7,8,9'),('8,9,0'),('9,0,1'),('0,1,2');
-select count(*) from t3;
-select * from t3 order by a;
-drop table t3;
-
-eval create table t4 (a set (
-'1','2','3') not null, primary key(a)) engine=$engine
-partition by list (cast(a as unsigned)) subpartition by key (a) subpartitions 3 (
-partition pa9 values in (1,2,3,4,5,6,7,8,9),
-partition pa18 values in (10,11,12,13,14,15,16,17,18),
-partition pa27 values in (19,20,21,22,23,24,25,26,27)
-);
-show create table t4;
-#insert into t4 values ('1'),('2'),('3');
-#insert into t4 values ('1,2'),('2,3'),('3,1');
-#insert into t4 values ('1,2,3');
-select count(*) from t4;
-select * from t4 order by a;
-drop table t4;
diff --git a/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc b/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc
index a26e6650893..0f30fd199f8 100644
--- a/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc
+++ b/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc
@@ -83,14 +83,9 @@ eval insert into t3 values ($val1);
eval insert into t3 values ($val2);
eval insert into t3 values ($val3);
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval load data infile '$MYSQL_TEST_DIR/suite/parts/inc/$infile' into table t4;
-
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval load data infile '$MYSQL_TEST_DIR/suite/parts/inc/$infile' into table t5;
-
---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval load data infile '$MYSQL_TEST_DIR/suite/parts/inc/$infile' into table t6;
+eval load data infile '../std_data_ln/parts/$infile' into table t4;
+eval load data infile '../std_data_ln/parts/$infile' into table t5;
+eval load data infile '../std_data_ln/parts/$infile' into table t6;
eval select $sqlfunc from t1 order by col1;
diff --git a/mysql-test/suite/parts/inc/partition_syntax.inc b/mysql-test/suite/parts/inc/partition_syntax.inc
index 3c53861b95b..a2a29d25e48 100644
--- a/mysql-test/suite/parts/inc/partition_syntax.inc
+++ b/mysql-test/suite/parts/inc/partition_syntax.inc
@@ -331,13 +331,13 @@ $column_list
PARTITION BY RANGE(f_int1)
( PARTITION part1 VALUES LESS THAN (NULL),
PARTITION part2 VALUES LESS THAN (1000));
---echo # 3.5.1.2 VALUE LESS THAN (CAST(NULL AS SIGNED INTEGER)) is not allowed
+--echo # 3.5.1.2 VALUE LESS THAN (NULL) is not allowed
--error 1064
eval CREATE TABLE t1 (
$column_list
)
PARTITION BY RANGE(f_int1)
-( PARTITION part1 VALUES LESS THAN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES LESS THAN (NULL),
PARTITION part2 VALUES LESS THAN (1000));
--echo # 3.5.2 NULL in LIST partitioning clause
--echo # 3.5.2.1 VALUE IN (NULL)
@@ -349,14 +349,14 @@ PARTITION BY LIST(MOD(f_int1,2))
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
DROP TABLE t1;
---echo # 3.5.2.2 VALUE IN (CAST(NULL AS SIGNED INTEGER))
+--echo # 3.5.2.2 VALUE IN (NULL)
# Attention: It is intended that there is no partition with
# VALUES IN (0), because there was a time where NULL was treated as zero
eval CREATE TABLE t1 (
$column_list
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part3 VALUES IN (1));
--source suite/parts/inc/partition_layout_check1.inc
# --source include/partition_layout_check1.inc
@@ -368,7 +368,7 @@ eval CREATE TABLE t1 (
$column_list
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
--source suite/parts/inc/partition_layout_check1.inc
diff --git a/mysql-test/suite/parts/inc/partition_syntax_1.inc b/mysql-test/suite/parts/inc/partition_syntax_1.inc
index ac88b5ee668..e3e1b3ccbb7 100644
--- a/mysql-test/suite/parts/inc/partition_syntax_1.inc
+++ b/mysql-test/suite/parts/inc/partition_syntax_1.inc
@@ -28,15 +28,15 @@ eval SET @my_errno= $mysql_errno ;
let $run= `SELECT @my_errno = 0`;
# Expected error codes are
# 0
-# 1064 ERROR 42000: You have an error in your SQL syntax
-# Reason: assign -1 partitions
-# 1486 ERROR HY000: Too many partitions (including subpartitions) were defined
-# 1491 ERROR HY000: Number of partitions = 0 is not an allowed value
-let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1487,1492)`;
+# 1064 ER_PARSE_ERROR
+# Reason: assign -1 partitions
+# 1496 ER_TOO_MANY_PARTITIONS_ERROR
+# 1501 ER_NO_PARTS_ERROR
+let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1496,1501)`;
if ($unexpected_error)
{
--echo # The last command got an unexepected error response.
- --echo # Expected/handled SQL codes are 0,1064,1487,1492
+ --echo # Expected/handled SQL codes are 0,1064,1496,1501
SELECT '# SQL code we got was: ' AS "", @my_errno AS "";
--echo # Sorry, have to abort.
exit;
@@ -66,15 +66,15 @@ eval SET @my_errno= $mysql_errno ;
let $run= `SELECT @my_errno = 0`;
# Expected error codes are
# 0
-# 1064 ERROR 42000: You have an error in your SQL syntax
-# Reason: assign -1 subpartitions
-# 1487 ERROR HY000: Too many partitions (including subpartitions) were defined
-# 1492 ERROR HY000: Number of partitions = 0 is not an allowed value
-let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1487,1492)`;
+# 1064 ER_PARSE_ERROR
+# Reason: assign -1 partitions
+# 1496 ER_TOO_MANY_PARTITIONS_ERROR
+# 1501 ER_NO_PARTS_ERROR
+let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1496,1501)`;
if ($unexpected_error)
{
--echo # The last command got an unexepected error response.
- --echo # Expected/handled SQL codes are 0,1064,1487,1492
+ --echo # Expected/handled SQL codes are 0,1064,1496,1501
SELECT '# SQL code we got was: ' AS "", @my_errno AS "";
--echo # Sorry, have to abort.
exit;
diff --git a/mysql-test/suite/parts/inc/partition_time.inc b/mysql-test/suite/parts/inc/partition_time.inc
index a3388bdc902..a3f49a156fe 100644
--- a/mysql-test/suite/parts/inc/partition_time.inc
+++ b/mysql-test/suite/parts/inc/partition_time.inc
@@ -46,7 +46,7 @@ select * from t2;
drop table t2;
eval create table t3 (a time not null, primary key(a)) engine=$engine
-partition by range (cast(second(a) as unsigned)) subpartition by key (a)
+partition by range (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (16),
partition quarter2 values less than (31),
@@ -66,7 +66,7 @@ select * from t3;
drop table t3;
eval create table t4 (a time not null, primary key(a)) engine=$engine
-partition by list (cast(second(a) as unsigned)) subpartition by key (a)
+partition by list (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),
partition quarter2 values in (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30),
diff --git a/mysql-test/suite/parts/inc/partition_timestamp.inc b/mysql-test/suite/parts/inc/partition_timestamp.inc
index 44eb3b5bd55..d4b1699d6c5 100644
--- a/mysql-test/suite/parts/inc/partition_timestamp.inc
+++ b/mysql-test/suite/parts/inc/partition_timestamp.inc
@@ -46,7 +46,7 @@ select * from t2;
drop table t2;
eval create table t3 (a timestamp not null, primary key(a)) engine=$engine
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -66,7 +66,7 @@ select * from t3;
drop table t3;
eval create table t4 (a timestamp not null, primary key(a)) engine=$engine
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (0,1,2,3),
partition quarter2 values in (4,5,6),
diff --git a/mysql-test/suite/parts/inc/partition_value.inc b/mysql-test/suite/parts/inc/partition_value.inc
index 75e9afd53d3..58691752bdf 100644
--- a/mysql-test/suite/parts/inc/partition_value.inc
+++ b/mysql-test/suite/parts/inc/partition_value.inc
@@ -12,6 +12,16 @@
# Change: #
################################################################################
+
+--echo
+--echo This test relies on the CAST() function for partitioning, which
+--echo is not allowed. Not deleting it yet, as it may have some useful
+--echo bits in it. See Bug #30581, "partition_value tests use disallowed
+--echo CAST() function"
+--echo
+
+--disable_parsing
+
--echo
--echo #========================================================================
--echo # Calculation of "exotic" results within the partition function
@@ -155,3 +165,5 @@ VALUES(NULL,NULL,NULL,NULL,NULL);
eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 IS NULL;
DROP TABLE t1;
#
+
+--enable_parsing
diff --git a/mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result b/mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result
index 675cebaa7e3..57a7b2189ba 100644
--- a/mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result
+++ b/mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result
@@ -2,9 +2,205 @@
--- All SQL functions should be rejected, otherwise BUG (see 18198)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
+--- ascii(col1) in partition with coltype char(30)
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 char(30)) engine='INNODB'
+partition by range(ascii(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 char(30)) engine='INNODB'
+partition by list(ascii(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 char(30)) engine='INNODB'
+partition by hash(ascii(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 char(30)) engine='INNODB'
+partition by range(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 char(30)) engine='INNODB'
+partition by list(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 char(30)) engine='INNODB'
+partition by range(colint)
+(partition p0 values less than (ascii('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 char(30)) engine='INNODB' ;
+create table t22 (col1 char(30)) engine='INNODB' ;
+create table t33 (col1 char(30)) engine='INNODB' ;
+create table t44 (colint int, col1 char(30)) engine='INNODB' ;
+create table t55 (colint int, col1 char(30)) engine='INNODB' ;
+create table t66 (colint int, col1 char(30)) engine='INNODB' ;
+alter table t11
+partition by range(ascii(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(ascii(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(ascii(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (ascii('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
+--- ord(col1) in partition with coltype char(30)
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 char(30)) engine='INNODB'
+partition by range(ord(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 char(30)) engine='INNODB'
+partition by list(ord(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 char(30)) engine='INNODB'
+partition by hash(ord(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 char(30)) engine='INNODB'
+partition by range(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 char(30)) engine='INNODB'
+partition by list(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 char(30)) engine='INNODB'
+partition by range(colint)
+(partition p0 values less than (ord('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 char(30)) engine='INNODB' ;
+create table t22 (col1 char(30)) engine='INNODB' ;
+create table t33 (col1 char(30)) engine='INNODB' ;
+create table t44 (colint int, col1 char(30)) engine='INNODB' ;
+create table t55 (colint int, col1 char(30)) engine='INNODB' ;
+create table t66 (colint int, col1 char(30)) engine='INNODB' ;
+alter table t11
+partition by range(ord(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(ord(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(ord(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (ord('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
--- greatest(col1,15) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -15,28 +211,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(greatest(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(greatest(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(greatest(col1,15));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (greatest(1,15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -53,28 +255,34 @@ alter table t11
partition by range(greatest(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(greatest(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(greatest(col1,15));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (greatest(1,15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -90,7 +298,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- isnull(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -101,28 +309,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(isnull(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(isnull(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(isnull(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (isnull(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -139,28 +353,34 @@ alter table t11
partition by range(isnull(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(isnull(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(isnull(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (isnull(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -176,7 +396,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- least(col1,15) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -187,28 +407,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(least(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(least(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(least(col1,15));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (least(15,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -225,28 +451,34 @@ alter table t11
partition by range(least(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(least(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(least(col1,15));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (least(15,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -262,7 +494,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- case when col1>15 then 20 else 10 end in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -273,28 +505,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(case when col1>15 then 20 else 10 end)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(case when col1>15 then 20 else 10 end)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(case when col1>15 then 20 else 10 end);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (case when 1>30 then 20 else 15 end),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -311,28 +549,34 @@ alter table t11
partition by range(case when col1>15 then 20 else 10 end)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(case when col1>15 then 20 else 10 end)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(case when col1>15 then 20 else 10 end);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (case when 1>30 then 20 else 15 end),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -348,7 +592,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- ifnull(col1,30) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -359,28 +603,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(ifnull(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(ifnull(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(ifnull(col1,30));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (ifnull(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -397,28 +647,34 @@ alter table t11
partition by range(ifnull(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(ifnull(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(ifnull(col1,30));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (ifnull(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -434,7 +690,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- nullif(col1,30) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -445,28 +701,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(nullif(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(nullif(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(nullif(col1,30));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (nullif(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -483,28 +745,34 @@ alter table t11
partition by range(nullif(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(nullif(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(nullif(col1,30));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (nullif(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -520,7 +788,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -531,28 +799,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(bit_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -569,28 +843,34 @@ alter table t11
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -606,7 +886,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -617,28 +897,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(bit_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -655,28 +941,34 @@ alter table t11
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -692,7 +984,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- char_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -703,28 +995,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(char_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(char_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(char_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (char_length('a')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -741,28 +1039,34 @@ alter table t11
partition by range(char_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(char_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(char_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (char_length('a')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -778,7 +1082,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- character_length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -789,28 +1093,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(character_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -827,28 +1137,34 @@ alter table t11
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(character_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -864,7 +1180,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- character_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -875,28 +1191,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(character_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -913,28 +1235,34 @@ alter table t11
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(character_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -950,7 +1278,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- instr(col1,'acb') in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -961,28 +1289,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -999,28 +1333,34 @@ alter table t11
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1036,7 +1376,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- instr(col1,'acb') in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1047,28 +1387,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1085,28 +1431,34 @@ alter table t11
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1122,7 +1474,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1133,28 +1485,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1171,28 +1529,34 @@ alter table t11
partition by range(length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1208,7 +1572,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- locate('a',col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1219,28 +1583,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(locate('a',col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1257,28 +1627,34 @@ alter table t11
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(locate('a',col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1294,7 +1670,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- locate('a',col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1305,28 +1681,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(locate('a',col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1343,28 +1725,34 @@ alter table t11
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(locate('a',col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1380,7 +1768,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- octet_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1391,28 +1779,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(octet_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(octet_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(octet_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (octet_length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1429,28 +1823,34 @@ alter table t11
partition by range(octet_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(octet_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(octet_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (octet_length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1466,7 +1866,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- position('a' in col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1477,28 +1877,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(position('a' in col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1515,28 +1921,34 @@ alter table t11
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(position('a' in col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1552,7 +1964,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- position('a' in col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1563,28 +1975,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(position('a' in col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1601,28 +2019,34 @@ alter table t11
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(position('a' in col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1638,7 +2062,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- strcmp(col1,'acb') in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1649,28 +2073,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1687,28 +2117,34 @@ alter table t11
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1724,7 +2160,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- strcmp(col1,'acb') in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1735,28 +2171,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1773,28 +2215,34 @@ alter table t11
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1810,7 +2258,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- crc32(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1821,28 +2269,34 @@ create table t1 (col1 char(30)) engine='INNODB'
partition by range(crc32(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='INNODB'
partition by list(crc32(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='INNODB'
partition by hash(crc32(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (crc32('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1859,28 +2313,34 @@ alter table t11
partition by range(crc32(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(crc32(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(crc32(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (crc32('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1896,7 +2356,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- round(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1907,28 +2367,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(round(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(round(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(round(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (round(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1945,28 +2411,34 @@ alter table t11
partition by range(round(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(round(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(round(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (round(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1982,7 +2454,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- sign(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1993,28 +2465,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(sign(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(sign(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(sign(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (sign(123)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2031,114 +2509,34 @@ alter table t11
partition by range(sign(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(sign(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(sign(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (sign(123)),
partition p1 values less than maxvalue);
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- datediff(col1,col1) in partition with coltype datetime
--------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-create table t1 (col1 datetime) engine='INNODB'
-partition by range(datediff(col1,col1))
-(partition p0 values less than (15),
-partition p1 values less than (31));
-create table t2 (col1 datetime) engine='INNODB'
-partition by list(datediff(col1,col1))
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-create table t3 (col1 datetime) engine='INNODB'
-partition by hash(datediff(col1,col1));
-create table t4 (colint int, col1 datetime) engine='INNODB'
-partition by range(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than (31));
-create table t5 (colint int, col1 datetime) engine='INNODB'
-partition by list(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-create table t6 (colint int, col1 datetime) engine='INNODB'
-partition by range(colint)
-(partition p0 values less than (datediff('1997-11-30 23:59:59','1997-12-31')),
-partition p1 values less than maxvalue);
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 (col1 datetime) engine='INNODB' ;
-create table t22 (col1 datetime) engine='INNODB' ;
-create table t33 (col1 datetime) engine='INNODB' ;
-create table t44 (colint int, col1 datetime) engine='INNODB' ;
-create table t55 (colint int, col1 datetime) engine='INNODB' ;
-create table t66 (colint int, col1 datetime) engine='INNODB' ;
-alter table t11
-partition by range(datediff(col1,col1))
-(partition p0 values less than (15),
-partition p1 values less than (31));
-alter table t22
-partition by list(datediff(col1,col1))
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-alter table t33
-partition by hash(datediff(col1,col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than (31));
-alter table t55
-partition by list(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-alter table t66
-partition by range(colint)
-(partition p0 values less than (datediff('1997-11-30 23:59:59','1997-12-31')),
-partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2154,7 +2552,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_add(col1,5) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2165,28 +2563,34 @@ create table t1 (col1 datetime) engine='INNODB'
partition by range(period_add(col1,5))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='INNODB'
partition by list(period_add(col1,5))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='INNODB'
partition by hash(period_add(col1,5));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='INNODB'
partition by list(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
(partition p0 values less than (period_add(9804,5)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2203,28 +2607,34 @@ alter table t11
partition by range(period_add(col1,5))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_add(col1,5))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_add(col1,5));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_add(9804,5)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2240,7 +2650,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_diff(col1,col2) in partition with coltype datetime,col2 datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2251,28 +2661,34 @@ create table t1 (col1 datetime,col2 datetime) engine='INNODB'
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime,col2 datetime) engine='INNODB'
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime,col2 datetime) engine='INNODB'
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
create table t4 (colint int, col1 datetime,col2 datetime) engine='INNODB'
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime,col2 datetime) engine='INNODB'
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime,col2 datetime) engine='INNODB'
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2289,28 +2705,34 @@ alter table t11
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2326,7 +2748,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_diff(col1,col2) in partition with coltype int,col2 int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2337,28 +2759,34 @@ create table t1 (col1 int,col2 int) engine='INNODB'
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int,col2 int) engine='INNODB'
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int,col2 int) engine='INNODB'
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
create table t4 (colint int, col1 int,col2 int) engine='INNODB'
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int,col2 int) engine='INNODB'
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int,col2 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2375,28 +2803,34 @@ alter table t11
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2412,7 +2846,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- timestampdiff(day,5,col1) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2423,28 +2857,34 @@ create table t1 (col1 datetime) engine='INNODB'
partition by range(timestampdiff(day,5,col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='INNODB'
partition by list(timestampdiff(day,5,col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='INNODB'
partition by hash(timestampdiff(day,5,col1));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='INNODB'
partition by list(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
(partition p0 values less than (timestampdiff(YEAR,'2002-05-01','2001-01-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2461,28 +2901,34 @@ alter table t11
partition by range(timestampdiff(day,5,col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(timestampdiff(day,5,col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(timestampdiff(day,5,col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (timestampdiff(YEAR,'2002-05-01','2001-01-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2498,7 +2944,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- unix_timestamp(col1) in partition with coltype date
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2509,28 +2955,34 @@ create table t1 (col1 date) engine='INNODB'
partition by range(unix_timestamp(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 date) engine='INNODB'
partition by list(unix_timestamp(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 date) engine='INNODB'
partition by hash(unix_timestamp(col1));
+Got one of the listed errors
create table t4 (colint int, col1 date) engine='INNODB'
partition by range(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 date) engine='INNODB'
partition by list(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 date) engine='INNODB'
partition by range(colint)
(partition p0 values less than (unix_timestamp ('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2547,28 +2999,34 @@ alter table t11
partition by range(unix_timestamp(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(unix_timestamp(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(unix_timestamp(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (unix_timestamp ('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2584,7 +3042,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- week(col1) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2595,28 +3053,34 @@ create table t1 (col1 datetime) engine='INNODB'
partition by range(week(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='INNODB'
partition by list(week(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='INNODB'
partition by hash(week(col1));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='INNODB'
partition by list(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='INNODB'
partition by range(colint)
(partition p0 values less than (week('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2633,28 +3097,132 @@ alter table t11
partition by range(week(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(week(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(week(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (week('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
+--- weekofyear(col1) in partition with coltype datetime
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 datetime) engine='INNODB'
+partition by range(weekofyear(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 datetime) engine='INNODB'
+partition by list(weekofyear(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 datetime) engine='INNODB'
+partition by hash(weekofyear(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 datetime) engine='INNODB'
+partition by range(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 datetime) engine='INNODB'
+partition by list(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 datetime) engine='INNODB'
+partition by range(colint)
+(partition p0 values less than (weekofyear('2002-05-01')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 datetime) engine='INNODB' ;
+create table t22 (col1 datetime) engine='INNODB' ;
+create table t33 (col1 datetime) engine='INNODB' ;
+create table t44 (colint int, col1 datetime) engine='INNODB' ;
+create table t55 (colint int, col1 datetime) engine='INNODB' ;
+create table t66 (colint int, col1 datetime) engine='INNODB' ;
+alter table t11
+partition by range(weekofyear(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(weekofyear(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(weekofyear(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (weekofyear('2002-05-01')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2670,7 +3238,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- cast(col1 as signed) in partition with coltype varchar(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2681,28 +3249,34 @@ create table t1 (col1 varchar(30)) engine='INNODB'
partition by range(cast(col1 as signed))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 varchar(30)) engine='INNODB'
partition by list(cast(col1 as signed))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 varchar(30)) engine='INNODB'
partition by hash(cast(col1 as signed));
+Got one of the listed errors
create table t4 (colint int, col1 varchar(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 varchar(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 varchar(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (cast(123 as signed)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2719,28 +3293,34 @@ alter table t11
partition by range(cast(col1 as signed))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(cast(col1 as signed))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(cast(col1 as signed));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (cast(123 as signed)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2756,7 +3336,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- convert(col1,unsigned) in partition with coltype varchar(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2767,28 +3347,34 @@ create table t1 (col1 varchar(30)) engine='INNODB'
partition by range(convert(col1,unsigned))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 varchar(30)) engine='INNODB'
partition by list(convert(col1,unsigned))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 varchar(30)) engine='INNODB'
partition by hash(convert(col1,unsigned));
+Got one of the listed errors
create table t4 (colint int, col1 varchar(30)) engine='INNODB'
partition by range(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 varchar(30)) engine='INNODB'
partition by list(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 varchar(30)) engine='INNODB'
partition by range(colint)
(partition p0 values less than (convert(123,unsigned)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2805,28 +3391,34 @@ alter table t11
partition by range(convert(col1,unsigned))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(convert(col1,unsigned))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(convert(col1,unsigned));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (convert(123,unsigned)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2842,7 +3434,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 | 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2853,28 +3445,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(col1 | 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(col1 | 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(col1 | 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (10 | 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2891,28 +3489,34 @@ alter table t11
partition by range(col1 | 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 | 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 | 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 | 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2928,7 +3532,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 & 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2939,28 +3543,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(col1 & 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(col1 & 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(col1 & 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (10 & 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2977,28 +3587,34 @@ alter table t11
partition by range(col1 & 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 & 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 & 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 & 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3014,7 +3630,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 ^ 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3025,28 +3641,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(col1 ^ 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(col1 ^ 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(col1 ^ 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (10 ^ 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3063,28 +3685,34 @@ alter table t11
partition by range(col1 ^ 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 ^ 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 ^ 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 ^ 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3100,7 +3728,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 << 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3111,28 +3739,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(col1 << 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(col1 << 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(col1 << 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (10 << 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3149,28 +3783,34 @@ alter table t11
partition by range(col1 << 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 << 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 << 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 << 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3186,7 +3826,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 >> 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3197,28 +3837,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(col1 >> 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(col1 >> 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(col1 >> 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (10 >> 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3235,28 +3881,34 @@ alter table t11
partition by range(col1 >> 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 >> 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 >> 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 >> 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3272,7 +3924,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- ~col1 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3283,28 +3935,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(~col1)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(~col1)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(~col1);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (~20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3321,28 +3979,34 @@ alter table t11
partition by range(~col1)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(~col1)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(~col1);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (~20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3358,7 +4022,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_count(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3369,28 +4033,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(bit_count(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(bit_count(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(bit_count(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (bit_count(20)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3407,28 +4077,34 @@ alter table t11
partition by range(bit_count(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_count(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_count(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_count(20)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3444,7 +4120,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- inet_aton(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3455,28 +4131,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(inet_aton(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(inet_aton(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(inet_aton(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (inet_aton('192.168.1.1')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3493,28 +4175,34 @@ alter table t11
partition by range(inet_aton(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(inet_aton(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(inet_aton(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (inet_aton('192.168.1.1')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3531,7 +4219,7 @@ set @var =20;
-------------------------------------------------------------------------
--- bit_length(col1)+@var-@var in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3542,35 +4230,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(bit_length(col1)+@var-@var)
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(bit_length(col1)+@var-@var)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(bit_length(col1)+@var-@var);
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (bit_length(20)+@var-@var),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3587,35 +4274,34 @@ alter table t11
partition by range(bit_length(col1)+@var-@var)
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1)+@var-@var)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1)+@var-@var);
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(20)+@var-@var),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3652,7 +4338,7 @@ end//
-------------------------------------------------------------------------
--- getmaxsigned_t1(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3663,35 +4349,34 @@ create table t1 (col1 int) engine='INNODB'
partition by range(getmaxsigned_t1(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
create table t2 (col1 int) engine='INNODB'
partition by list(getmaxsigned_t1(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
create table t3 (col1 int) engine='INNODB'
partition by hash(getmaxsigned_t1(col1));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
(partition p0 values less than (getmaxsigned(10)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3708,35 +4393,34 @@ alter table t11
partition by range(getmaxsigned_t1(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
alter table t22
partition by list(getmaxsigned_t1(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
alter table t33
partition by hash(getmaxsigned_t1(col1));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (getmaxsigned(10)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
diff --git a/mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result b/mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result
index 8b0ea1d3d49..4a67054e82a 100644
--- a/mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result
+++ b/mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result
@@ -2,9 +2,205 @@
--- All SQL functions should be rejected, otherwise BUG (see 18198)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
+--- ascii(col1) in partition with coltype char(30)
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 char(30)) engine='MYISAM'
+partition by range(ascii(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 char(30)) engine='MYISAM'
+partition by list(ascii(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 char(30)) engine='MYISAM'
+partition by hash(ascii(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 char(30)) engine='MYISAM'
+partition by range(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 char(30)) engine='MYISAM'
+partition by list(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 char(30)) engine='MYISAM'
+partition by range(colint)
+(partition p0 values less than (ascii('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 char(30)) engine='MYISAM' ;
+create table t22 (col1 char(30)) engine='MYISAM' ;
+create table t33 (col1 char(30)) engine='MYISAM' ;
+create table t44 (colint int, col1 char(30)) engine='MYISAM' ;
+create table t55 (colint int, col1 char(30)) engine='MYISAM' ;
+create table t66 (colint int, col1 char(30)) engine='MYISAM' ;
+alter table t11
+partition by range(ascii(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(ascii(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(ascii(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(ascii(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (ascii('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
+--- ord(col1) in partition with coltype char(30)
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 char(30)) engine='MYISAM'
+partition by range(ord(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 char(30)) engine='MYISAM'
+partition by list(ord(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 char(30)) engine='MYISAM'
+partition by hash(ord(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 char(30)) engine='MYISAM'
+partition by range(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 char(30)) engine='MYISAM'
+partition by list(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 char(30)) engine='MYISAM'
+partition by range(colint)
+(partition p0 values less than (ord('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 char(30)) engine='MYISAM' ;
+create table t22 (col1 char(30)) engine='MYISAM' ;
+create table t33 (col1 char(30)) engine='MYISAM' ;
+create table t44 (colint int, col1 char(30)) engine='MYISAM' ;
+create table t55 (colint int, col1 char(30)) engine='MYISAM' ;
+create table t66 (colint int, col1 char(30)) engine='MYISAM' ;
+alter table t11
+partition by range(ord(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(ord(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(ord(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(ord(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (ord('a')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
--- greatest(col1,15) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -15,28 +211,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(greatest(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(greatest(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(greatest(col1,15));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (greatest(1,15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -53,28 +255,34 @@ alter table t11
partition by range(greatest(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(greatest(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(greatest(col1,15));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(greatest(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (greatest(1,15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -90,7 +298,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- isnull(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -101,28 +309,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(isnull(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(isnull(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(isnull(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (isnull(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -139,28 +353,34 @@ alter table t11
partition by range(isnull(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(isnull(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(isnull(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(isnull(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (isnull(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -176,7 +396,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- least(col1,15) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -187,28 +407,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(least(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(least(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(least(col1,15));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (least(15,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -225,28 +451,34 @@ alter table t11
partition by range(least(col1,15))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(least(col1,15))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(least(col1,15));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(least(col1,15)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (least(15,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -262,7 +494,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- case when col1>15 then 20 else 10 end in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -273,28 +505,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(case when col1>15 then 20 else 10 end)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(case when col1>15 then 20 else 10 end)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(case when col1>15 then 20 else 10 end);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (case when 1>30 then 20 else 15 end),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -311,28 +549,34 @@ alter table t11
partition by range(case when col1>15 then 20 else 10 end)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(case when col1>15 then 20 else 10 end)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(case when col1>15 then 20 else 10 end);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(case when col1>15 then 20 else 10 end) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (case when 1>30 then 20 else 15 end),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -348,7 +592,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- ifnull(col1,30) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -359,28 +603,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(ifnull(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(ifnull(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(ifnull(col1,30));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (ifnull(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -397,28 +647,34 @@ alter table t11
partition by range(ifnull(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(ifnull(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(ifnull(col1,30));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(ifnull(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (ifnull(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -434,7 +690,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- nullif(col1,30) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -445,28 +701,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(nullif(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(nullif(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(nullif(col1,30));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (nullif(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -483,28 +745,34 @@ alter table t11
partition by range(nullif(col1,30))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(nullif(col1,30))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(nullif(col1,30));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(nullif(col1,30)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (nullif(1,30)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -520,7 +788,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -531,28 +799,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(bit_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -569,28 +843,34 @@ alter table t11
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -606,7 +886,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -617,28 +897,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(bit_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -655,28 +941,34 @@ alter table t11
partition by range(bit_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(255)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -692,7 +984,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- char_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -703,28 +995,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(char_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(char_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(char_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (char_length('a')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -741,28 +1039,34 @@ alter table t11
partition by range(char_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(char_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(char_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(char_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (char_length('a')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -778,7 +1082,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- character_length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -789,28 +1093,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(character_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -827,28 +1137,34 @@ alter table t11
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(character_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -864,7 +1180,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- character_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -875,28 +1191,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(character_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -913,28 +1235,34 @@ alter table t11
partition by range(character_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(character_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(character_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(character_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (find_in_set('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -950,7 +1278,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- instr(col1,'acb') in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -961,28 +1289,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -999,28 +1333,34 @@ alter table t11
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1036,7 +1376,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- instr(col1,'acb') in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1047,28 +1387,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1085,28 +1431,34 @@ alter table t11
partition by range(instr(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(instr(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(instr(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(instr(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (instr('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1122,7 +1474,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- length(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1133,28 +1485,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1171,28 +1529,34 @@ alter table t11
partition by range(length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1208,7 +1572,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- locate('a',col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1219,28 +1583,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(locate('a',col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1257,28 +1627,34 @@ alter table t11
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(locate('a',col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1294,7 +1670,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- locate('a',col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1305,28 +1681,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(locate('a',col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1343,28 +1725,34 @@ alter table t11
partition by range(locate('a',col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(locate('a',col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(locate('a',col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(locate('a',col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (locate('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1380,7 +1768,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- octet_length(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1391,28 +1779,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(octet_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(octet_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(octet_length(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (octet_length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1429,28 +1823,34 @@ alter table t11
partition by range(octet_length(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(octet_length(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(octet_length(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(octet_length(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (octet_length('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1466,7 +1866,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- position('a' in col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1477,28 +1877,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(position('a' in col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1515,28 +1921,34 @@ alter table t11
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(position('a' in col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1552,7 +1964,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- position('a' in col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1563,28 +1975,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(position('a' in col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1601,28 +2019,34 @@ alter table t11
partition by range(position('a' in col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(position('a' in col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(position('a' in col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(position('a' in col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (position('i' in 'a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1638,7 +2062,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- strcmp(col1,'acb') in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1649,28 +2073,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1687,28 +2117,34 @@ alter table t11
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1724,7 +2160,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- strcmp(col1,'acb') in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1735,28 +2171,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1773,28 +2215,34 @@ alter table t11
partition by range(strcmp(col1,'acb'))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(strcmp(col1,'acb'))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(strcmp(col1,'acb'));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(strcmp(col1,'acb')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (strcmp('i','a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1810,7 +2258,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- crc32(col1) in partition with coltype char(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1821,28 +2269,34 @@ create table t1 (col1 char(30)) engine='MYISAM'
partition by range(crc32(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 char(30)) engine='MYISAM'
partition by list(crc32(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 char(30)) engine='MYISAM'
partition by hash(crc32(col1));
+Got one of the listed errors
create table t4 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 char(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 char(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (crc32('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1859,28 +2313,34 @@ alter table t11
partition by range(crc32(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(crc32(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(crc32(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(crc32(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (crc32('a,b,c,d,e,f,g,h,i')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1896,7 +2356,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- round(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1907,28 +2367,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(round(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(round(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(round(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (round(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -1945,28 +2411,34 @@ alter table t11
partition by range(round(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(round(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(round(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(round(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (round(15)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1982,7 +2454,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- sign(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -1993,28 +2465,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(sign(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(sign(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(sign(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (sign(123)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2031,114 +2509,34 @@ alter table t11
partition by range(sign(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(sign(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(sign(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(sign(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (sign(123)),
partition p1 values less than maxvalue);
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- datediff(col1,col1) in partition with coltype datetime
--------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-create table t1 (col1 datetime) engine='MYISAM'
-partition by range(datediff(col1,col1))
-(partition p0 values less than (15),
-partition p1 values less than (31));
-create table t2 (col1 datetime) engine='MYISAM'
-partition by list(datediff(col1,col1))
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-create table t3 (col1 datetime) engine='MYISAM'
-partition by hash(datediff(col1,col1));
-create table t4 (colint int, col1 datetime) engine='MYISAM'
-partition by range(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than (31));
-create table t5 (colint int, col1 datetime) engine='MYISAM'
-partition by list(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-create table t6 (colint int, col1 datetime) engine='MYISAM'
-partition by range(colint)
-(partition p0 values less than (datediff('1997-11-30 23:59:59','1997-12-31')),
-partition p1 values less than maxvalue);
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 (col1 datetime) engine='MYISAM' ;
-create table t22 (col1 datetime) engine='MYISAM' ;
-create table t33 (col1 datetime) engine='MYISAM' ;
-create table t44 (colint int, col1 datetime) engine='MYISAM' ;
-create table t55 (colint int, col1 datetime) engine='MYISAM' ;
-create table t66 (colint int, col1 datetime) engine='MYISAM' ;
-alter table t11
-partition by range(datediff(col1,col1))
-(partition p0 values less than (15),
-partition p1 values less than (31));
-alter table t22
-partition by list(datediff(col1,col1))
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-alter table t33
-partition by hash(datediff(col1,col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than (31));
-alter table t55
-partition by list(colint)
-subpartition by hash(datediff(col1,col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-alter table t66
-partition by range(colint)
-(partition p0 values less than (datediff('1997-11-30 23:59:59','1997-12-31')),
-partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2154,7 +2552,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_add(col1,5) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2165,28 +2563,34 @@ create table t1 (col1 datetime) engine='MYISAM'
partition by range(period_add(col1,5))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='MYISAM'
partition by list(period_add(col1,5))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='MYISAM'
partition by hash(period_add(col1,5));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='MYISAM'
partition by list(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (period_add(9804,5)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2203,28 +2607,34 @@ alter table t11
partition by range(period_add(col1,5))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_add(col1,5))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_add(col1,5));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_add(col1,5)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_add(9804,5)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2240,7 +2650,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_diff(col1,col2) in partition with coltype datetime,col2 datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2251,28 +2661,34 @@ create table t1 (col1 datetime,col2 datetime) engine='MYISAM'
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime,col2 datetime) engine='MYISAM'
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime,col2 datetime) engine='MYISAM'
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
create table t4 (colint int, col1 datetime,col2 datetime) engine='MYISAM'
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime,col2 datetime) engine='MYISAM'
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime,col2 datetime) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2289,28 +2705,34 @@ alter table t11
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2326,7 +2748,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- period_diff(col1,col2) in partition with coltype int,col2 int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2337,28 +2759,34 @@ create table t1 (col1 int,col2 int) engine='MYISAM'
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int,col2 int) engine='MYISAM'
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int,col2 int) engine='MYISAM'
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
create table t4 (colint int, col1 int,col2 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int,col2 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int,col2 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2375,28 +2803,34 @@ alter table t11
partition by range(period_diff(col1,col2))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(period_diff(col1,col2))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(period_diff(col1,col2));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(period_diff(col1,col2)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (period_diff(9809,199907)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2412,7 +2846,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- timestampdiff(day,5,col1) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2423,28 +2857,34 @@ create table t1 (col1 datetime) engine='MYISAM'
partition by range(timestampdiff(day,5,col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='MYISAM'
partition by list(timestampdiff(day,5,col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='MYISAM'
partition by hash(timestampdiff(day,5,col1));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='MYISAM'
partition by list(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (timestampdiff(YEAR,'2002-05-01','2001-01-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2461,28 +2901,34 @@ alter table t11
partition by range(timestampdiff(day,5,col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(timestampdiff(day,5,col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(timestampdiff(day,5,col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(timestampdiff(day,5,col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (timestampdiff(YEAR,'2002-05-01','2001-01-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2498,7 +2944,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- unix_timestamp(col1) in partition with coltype date
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2509,28 +2955,34 @@ create table t1 (col1 date) engine='MYISAM'
partition by range(unix_timestamp(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 date) engine='MYISAM'
partition by list(unix_timestamp(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 date) engine='MYISAM'
partition by hash(unix_timestamp(col1));
+Got one of the listed errors
create table t4 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 date) engine='MYISAM'
partition by list(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (unix_timestamp ('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2547,28 +2999,34 @@ alter table t11
partition by range(unix_timestamp(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(unix_timestamp(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(unix_timestamp(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(unix_timestamp(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (unix_timestamp ('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2584,7 +3042,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- week(col1) in partition with coltype datetime
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2595,28 +3053,34 @@ create table t1 (col1 datetime) engine='MYISAM'
partition by range(week(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 datetime) engine='MYISAM'
partition by list(week(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 datetime) engine='MYISAM'
partition by hash(week(col1));
+Got one of the listed errors
create table t4 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 datetime) engine='MYISAM'
partition by list(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 datetime) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (week('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2633,28 +3097,132 @@ alter table t11
partition by range(week(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(week(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(week(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(week(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (week('2002-05-01')),
partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+-------------------------------------------------------------------------
+--- weekofyear(col1) in partition with coltype datetime
+-------------------------------------------------------------------------
+must all fail!
+drop table if exists t1 ;
+drop table if exists t2 ;
+drop table if exists t3 ;
+drop table if exists t4 ;
+drop table if exists t5 ;
+drop table if exists t6 ;
+create table t1 (col1 datetime) engine='MYISAM'
+partition by range(weekofyear(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t2 (col1 datetime) engine='MYISAM'
+partition by list(weekofyear(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t3 (col1 datetime) engine='MYISAM'
+partition by hash(weekofyear(col1));
+Got one of the listed errors
+create table t4 (colint int, col1 datetime) engine='MYISAM'
+partition by range(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+create table t5 (colint int, col1 datetime) engine='MYISAM'
+partition by list(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+create table t6 (colint int, col1 datetime) engine='MYISAM'
+partition by range(colint)
+(partition p0 values less than (weekofyear('2002-05-01')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
+drop table if exists t11 ;
+drop table if exists t22 ;
+drop table if exists t33 ;
+drop table if exists t44 ;
+drop table if exists t55 ;
+drop table if exists t66 ;
+create table t11 (col1 datetime) engine='MYISAM' ;
+create table t22 (col1 datetime) engine='MYISAM' ;
+create table t33 (col1 datetime) engine='MYISAM' ;
+create table t44 (colint int, col1 datetime) engine='MYISAM' ;
+create table t55 (colint int, col1 datetime) engine='MYISAM' ;
+create table t66 (colint int, col1 datetime) engine='MYISAM' ;
+alter table t11
+partition by range(weekofyear(col1))
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t22
+partition by list(weekofyear(col1))
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t33
+partition by hash(weekofyear(col1));
+Got one of the listed errors
+alter table t44
+partition by range(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values less than (15),
+partition p1 values less than (31));
+Got one of the listed errors
+alter table t55
+partition by list(colint)
+subpartition by hash(weekofyear(col1)) subpartitions 2
+(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
+partition p1 values in (11,12,13,14,15,16,17,18,19,20),
+partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
+alter table t66
+partition by range(colint)
+(partition p0 values less than (weekofyear('2002-05-01')),
+partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2670,7 +3238,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- cast(col1 as signed) in partition with coltype varchar(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2681,28 +3249,34 @@ create table t1 (col1 varchar(30)) engine='MYISAM'
partition by range(cast(col1 as signed))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 varchar(30)) engine='MYISAM'
partition by list(cast(col1 as signed))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 varchar(30)) engine='MYISAM'
partition by hash(cast(col1 as signed));
+Got one of the listed errors
create table t4 (colint int, col1 varchar(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 varchar(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 varchar(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (cast(123 as signed)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2719,28 +3293,34 @@ alter table t11
partition by range(cast(col1 as signed))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(cast(col1 as signed))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(cast(col1 as signed));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(cast(col1 as signed)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (cast(123 as signed)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2756,7 +3336,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- convert(col1,unsigned) in partition with coltype varchar(30)
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2767,28 +3347,34 @@ create table t1 (col1 varchar(30)) engine='MYISAM'
partition by range(convert(col1,unsigned))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 varchar(30)) engine='MYISAM'
partition by list(convert(col1,unsigned))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 varchar(30)) engine='MYISAM'
partition by hash(convert(col1,unsigned));
+Got one of the listed errors
create table t4 (colint int, col1 varchar(30)) engine='MYISAM'
partition by range(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 varchar(30)) engine='MYISAM'
partition by list(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 varchar(30)) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (convert(123,unsigned)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2805,28 +3391,34 @@ alter table t11
partition by range(convert(col1,unsigned))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(convert(col1,unsigned))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(convert(col1,unsigned));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(convert(col1,unsigned)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (convert(123,unsigned)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2842,7 +3434,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 | 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2853,28 +3445,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(col1 | 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(col1 | 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(col1 | 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (10 | 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2891,28 +3489,34 @@ alter table t11
partition by range(col1 | 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 | 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 | 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 | 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 | 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2928,7 +3532,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 & 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -2939,28 +3543,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(col1 & 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(col1 & 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(col1 & 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (10 & 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -2977,28 +3587,34 @@ alter table t11
partition by range(col1 & 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 & 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 & 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 & 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 & 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3014,7 +3630,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 ^ 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3025,28 +3641,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(col1 ^ 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(col1 ^ 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(col1 ^ 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (10 ^ 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3063,28 +3685,34 @@ alter table t11
partition by range(col1 ^ 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 ^ 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 ^ 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 ^ 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 ^ 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3100,7 +3728,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 << 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3111,28 +3739,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(col1 << 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(col1 << 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(col1 << 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (10 << 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3149,28 +3783,34 @@ alter table t11
partition by range(col1 << 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 << 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 << 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 << 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 << 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3186,7 +3826,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- col1 >> 20 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3197,28 +3837,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(col1 >> 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(col1 >> 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(col1 >> 20);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (10 >> 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3235,28 +3881,34 @@ alter table t11
partition by range(col1 >> 20)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(col1 >> 20)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(col1 >> 20);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(col1 >> 20) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (10 >> 20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3272,7 +3924,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- ~col1 in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3283,28 +3935,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(~col1)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(~col1)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(~col1);
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (~20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3321,28 +3979,34 @@ alter table t11
partition by range(~col1)
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(~col1)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(~col1);
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(~col1) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (~20),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3358,7 +4022,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- bit_count(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3369,28 +4033,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(bit_count(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(bit_count(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(bit_count(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (bit_count(20)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3407,28 +4077,34 @@ alter table t11
partition by range(bit_count(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(bit_count(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(bit_count(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_count(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_count(20)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3444,7 +4120,7 @@ drop table if exists t66 ;
-------------------------------------------------------------------------
--- inet_aton(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3455,28 +4131,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(inet_aton(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(inet_aton(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(inet_aton(col1));
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (inet_aton('192.168.1.1')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3493,28 +4175,34 @@ alter table t11
partition by range(inet_aton(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t22
partition by list(inet_aton(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t33
partition by hash(inet_aton(col1));
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(inet_aton(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (inet_aton('192.168.1.1')),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3531,7 +4219,7 @@ set @var =20;
-------------------------------------------------------------------------
--- bit_length(col1)+@var-@var in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3542,35 +4230,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(bit_length(col1)+@var-@var)
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(bit_length(col1)+@var-@var)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(bit_length(col1)+@var-@var);
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (bit_length(20)+@var-@var),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3587,35 +4274,34 @@ alter table t11
partition by range(bit_length(col1)+@var-@var)
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
alter table t22
partition by list(bit_length(col1)+@var-@var)
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
alter table t33
partition by hash(bit_length(col1)+@var-@var);
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(bit_length(col1)+@var-@var) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (bit_length(20)+@var-@var),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3652,7 +4338,7 @@ end//
-------------------------------------------------------------------------
--- getmaxsigned_t1(col1) in partition with coltype int
-------------------------------------------------------------------------
-must all fail! (delete 0 and comment char, if bug fixed)
+must all fail!
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
@@ -3663,35 +4349,34 @@ create table t1 (col1 int) engine='MYISAM'
partition by range(getmaxsigned_t1(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
create table t2 (col1 int) engine='MYISAM'
partition by list(getmaxsigned_t1(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
create table t3 (col1 int) engine='MYISAM'
partition by hash(getmaxsigned_t1(col1));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
(partition p0 values less than (getmaxsigned(10)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t11 ;
drop table if exists t22 ;
drop table if exists t33 ;
@@ -3708,35 +4393,34 @@ alter table t11
partition by range(getmaxsigned_t1(col1))
(partition p0 values less than (15),
partition p1 values less than (31));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values less than (15),
-partition p1 values less than (31))' at line 2
+Got one of the listed errors
alter table t22
partition by list(getmaxsigned_t1(col1))
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12' at line 2
+Got one of the listed errors
alter table t33
partition by hash(getmaxsigned_t1(col1));
-ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
+Got one of the listed errors
alter table t44
partition by range(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than (31));
+Got one of the listed errors
alter table t55
partition by list(colint)
subpartition by hash(getmaxsigned_t1(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30));
+Got one of the listed errors
alter table t66
partition by range(colint)
(partition p0 values less than (getmaxsigned(10)),
partition p1 values less than maxvalue);
+Got one of the listed errors
drop table if exists t1 ;
drop table if exists t2 ;
drop table if exists t3 ;
diff --git a/mysql-test/suite/parts/r/part_supported_sql_func_innodb.result b/mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
index 1e158e0a787..c47c22ed363 100644
--- a/mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
+++ b/mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
@@ -55,9 +55,9 @@ insert into t2 values (17 );
insert into t3 values (5 );
insert into t3 values (13 );
insert into t3 values (17 );
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t6;
select abs(col1) from t1 order by col1;
abs(col1)
5
@@ -1675,7 +1675,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- ascii(col1) in partition with coltype char(1)
+--- mod(col1,10) in partition with coltype int
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -1684,1510 +1684,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with ascii(col1)
+--- Create tables with mod(col1,10)
-------------------------------------------------------------------------
-create table t1 (col1 char(1)) engine='INNODB'
-partition by range(ascii(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 char(1)) engine='INNODB'
-partition by list(ascii(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 char(1)) engine='INNODB'
-partition by hash(ascii(col1));
-create table t4 (colint int, col1 char(1)) engine='INNODB'
-partition by range(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 char(1)) engine='INNODB'
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 char(1)) engine='INNODB'
-partition by range(colint)
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with ascii(col1)
--------------------------------------------------------------------------
-insert into t1 values ('1');
-insert into t1 values ('9');
-insert into t2 values ('1');
-insert into t2 values ('9');
-insert into t2 values ('3');
-insert into t3 values ('1');
-insert into t3 values ('9');
-insert into t3 values ('3');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t6;
-select ascii(col1) from t1 order by col1;
-ascii(col1)
-49
-57
-select * from t1 order by col1;
-col1
-1
-9
-select * from t2 order by col1;
-col1
-1
-3
-9
-select * from t3 order by col1;
-col1
-1
-3
-9
-select * from t4 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-update t1 set col1='8' where col1='1';
-update t2 set col1='8' where col1='1';
-update t3 set col1='8' where col1='1';
-update t4 set col1='8' where col1='1';
-update t5 set col1='8' where col1='1';
-update t6 set col1='8' where col1='1';
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Alter tables with ascii(col1)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='INNODB' as select * from t1;
-create table t22 engine='INNODB' as select * from t2;
-create table t33 engine='INNODB' as select * from t3;
-create table t44 engine='INNODB' as select * from t4;
-create table t55 engine='INNODB' as select * from t5;
-create table t66 engine='INNODB' as select * from t6;
-alter table t11
-partition by range(ascii(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(ascii(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(ascii(col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t55
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` char(1) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (ascii(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ascii(col1)
--------------------------------------------------------------------------
-delete from t1 where col1='9';
-delete from t2 where col1='9';
-delete from t3 where col1='9';
-delete from t4 where col1='9';
-delete from t5 where col1='9';
-delete from t6 where col1='9';
-select * from t1 order by col1;
-col1
-8
-select * from t2 order by col1;
-col1
-3
-8
-select * from t3 order by col1;
-col1
-3
-8
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t1 values ('9');
-insert into t2 values ('9');
-insert into t3 values ('9');
-insert into t4 values (60,'9');
-insert into t5 values (60,'9');
-insert into t6 values (60,'9');
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t6 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-60 9
-select * from t5 order by colint;
-colint col1
-60 9
-select * from t6 order by colint;
-colint col1
-60 9
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ascii(col1)
--------------------------------------------------------------------------
-delete from t11 where col1='9';
-delete from t22 where col1='9';
-delete from t33 where col1='9';
-delete from t44 where col1='9';
-delete from t55 where col1='9';
-delete from t66 where col1='9';
-select * from t11 order by col1;
-col1
-8
-select * from t22 order by col1;
-col1
-3
-8
-select * from t33 order by col1;
-col1
-3
-8
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t11 values ('9');
-insert into t22 values ('9');
-insert into t33 values ('9');
-insert into t44 values (60,'9');
-insert into t55 values (60,'9');
-insert into t66 values (60,'9');
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t66 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-60 9
-select * from t55 order by colint;
-colint col1
-60 9
-select * from t66 order by colint;
-colint col1
-60 9
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(ceiling(col1) as signed integer) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='INNODB'
-partition by range(cast(ceiling(col1) as signed integer))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='INNODB'
-partition by list(cast(ceiling(col1) as signed integer))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 float(7,4)) engine='INNODB'
-partition by hash(cast(ceiling(col1) as signed integer));
-create table t4 (colint int, col1 float(7,4)) engine='INNODB'
-partition by range(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='INNODB'
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 float(7,4)) engine='INNODB'
-partition by range(colint)
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-insert into t1 values (5.1230);
-insert into t1 values (13.345);
-insert into t2 values (5.1230);
-insert into t2 values (13.345);
-insert into t2 values (17.987);
-insert into t3 values (5.1230);
-insert into t3 values (13.345);
-insert into t3 values (17.987);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(ceiling(col1) as signed integer) from t1 order by col1;
-cast(ceiling(col1) as signed integer)
-6
-14
-select * from t1 order by col1;
-col1
-5.1230
-13.3450
-select * from t2 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t3 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t4 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15.654 where col1=5.1230;
-update t2 set col1=15.654 where col1=5.1230;
-update t3 set col1=15.654 where col1=5.1230;
-update t4 set col1=15.654 where col1=5.1230;
-update t5 set col1=15.654 where col1=5.1230;
-update t6 set col1=15.654 where col1=5.1230;
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Alter tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='INNODB' as select * from t1;
-create table t22 engine='INNODB' as select * from t2;
-create table t33 engine='INNODB' as select * from t3;
-create table t44 engine='INNODB' as select * from t4;
-create table t55 engine='INNODB' as select * from t5;
-create table t66 engine='INNODB' as select * from t6;
-alter table t11
-partition by range(cast(ceiling(col1) as signed integer))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(cast(ceiling(col1) as signed integer))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(cast(ceiling(col1) as signed integer));
-alter table t44
-partition by range(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(ceiling(col1) as signed integer)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-delete from t1 where col1=13.345;
-delete from t2 where col1=13.345;
-delete from t3 where col1=13.345;
-delete from t4 where col1=13.345;
-delete from t5 where col1=13.345;
-delete from t6 where col1=13.345;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t1 values (13.345);
-insert into t2 values (13.345);
-insert into t3 values (13.345);
-insert into t4 values (60,13.345);
-insert into t5 values (60,13.345);
-insert into t6 values (60,13.345);
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t6 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-60 13.3450
-select * from t5 order by colint;
-colint col1
-60 13.3450
-select * from t6 order by colint;
-colint col1
-60 13.3450
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-delete from t11 where col1=13.345;
-delete from t22 where col1=13.345;
-delete from t33 where col1=13.345;
-delete from t44 where col1=13.345;
-delete from t55 where col1=13.345;
-delete from t66 where col1=13.345;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t11 values (13.345);
-insert into t22 values (13.345);
-insert into t33 values (13.345);
-insert into t44 values (60,13.345);
-insert into t55 values (60,13.345);
-insert into t66 values (60,13.345);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t66 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-60 13.3450
-select * from t55 order by colint;
-colint col1
-60 13.3450
-select * from t66 order by colint;
-colint col1
-60 13.3450
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(floor(col1) as signed) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='INNODB'
-partition by range(cast(floor(col1) as signed))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='INNODB'
-partition by list(cast(floor(col1) as signed))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 float(7,4)) engine='INNODB'
-partition by hash(cast(floor(col1) as signed));
-create table t4 (colint int, col1 float(7,4)) engine='INNODB'
-partition by range(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='INNODB'
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 float(7,4)) engine='INNODB'
-partition by range(colint)
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-insert into t1 values (5.1230);
-insert into t1 values (13.345);
-insert into t2 values (5.1230);
-insert into t2 values (13.345);
-insert into t2 values (17.987);
-insert into t3 values (5.1230);
-insert into t3 values (13.345);
-insert into t3 values (17.987);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(floor(col1) as signed) from t1 order by col1;
-cast(floor(col1) as signed)
-5
-13
-select * from t1 order by col1;
-col1
-5.1230
-13.3450
-select * from t2 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t3 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t4 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15.654 where col1=5.1230;
-update t2 set col1=15.654 where col1=5.1230;
-update t3 set col1=15.654 where col1=5.1230;
-update t4 set col1=15.654 where col1=5.1230;
-update t5 set col1=15.654 where col1=5.1230;
-update t6 set col1=15.654 where col1=5.1230;
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Alter tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='INNODB' as select * from t1;
-create table t22 engine='INNODB' as select * from t2;
-create table t33 engine='INNODB' as select * from t3;
-create table t44 engine='INNODB' as select * from t4;
-create table t55 engine='INNODB' as select * from t5;
-create table t66 engine='INNODB' as select * from t6;
-alter table t11
-partition by range(cast(floor(col1) as signed))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(cast(floor(col1) as signed))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(cast(floor(col1) as signed));
-alter table t44
-partition by range(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(floor(col1) as signed)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-delete from t1 where col1=13.345;
-delete from t2 where col1=13.345;
-delete from t3 where col1=13.345;
-delete from t4 where col1=13.345;
-delete from t5 where col1=13.345;
-delete from t6 where col1=13.345;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t1 values (13.345);
-insert into t2 values (13.345);
-insert into t3 values (13.345);
-insert into t4 values (60,13.345);
-insert into t5 values (60,13.345);
-insert into t6 values (60,13.345);
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t6 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-60 13.3450
-select * from t5 order by colint;
-colint col1
-60 13.3450
-select * from t6 order by colint;
-colint col1
-60 13.3450
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-delete from t11 where col1=13.345;
-delete from t22 where col1=13.345;
-delete from t33 where col1=13.345;
-delete from t44 where col1=13.345;
-delete from t55 where col1=13.345;
-delete from t66 where col1=13.345;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t11 values (13.345);
-insert into t22 values (13.345);
-insert into t33 values (13.345);
-insert into t44 values (60,13.345);
-insert into t55 values (60,13.345);
-insert into t66 values (60,13.345);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t66 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-60 13.3450
-select * from t55 order by colint;
-colint col1
-60 13.3450
-select * from t66 order by colint;
-colint col1
-60 13.3450
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(mod(col1,10) as signed) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(mod(col1,10) as signed)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='INNODB'
-partition by range(cast(mod(col1,10) as signed))
+create table t1 (col1 int) engine='INNODB'
+partition by range(mod(col1,10))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='INNODB'
-partition by list(cast(mod(col1,10) as signed))
+create table t2 (col1 int) engine='INNODB'
+partition by list(mod(col1,10))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3195,16 +1699,16 @@ partition p3 values in (31,32,33,34,35,36,37,38,39,40),
partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
-create table t3 (col1 float(7,4)) engine='INNODB'
-partition by hash(cast(mod(col1,10) as signed));
-create table t4 (colint int, col1 float(7,4)) engine='INNODB'
+create table t3 (col1 int) engine='INNODB'
+partition by hash(mod(col1,10));
+create table t4 (colint int, col1 int) engine='INNODB'
partition by range(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='INNODB'
+create table t5 (colint int, col1 int) engine='INNODB'
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3212,100 +1716,346 @@ partition p3 values in (31,32,33,34,35,36,37,38,39,40),
partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
-create table t6 (colint int, col1 float(7,4)) engine='INNODB'
+create table t6 (colint int, col1 int) engine='INNODB'
partition by range(colint)
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with cast(mod(col1,10) as signed)
+--- Access tables with mod(col1,10)
-------------------------------------------------------------------------
-insert into t1 values (5.0000);
+insert into t1 values (5);
insert into t1 values (19);
-insert into t2 values (5.0000);
+insert into t2 values (5);
insert into t2 values (19);
insert into t2 values (17);
-insert into t3 values (5.0000);
+insert into t3 values (5);
insert into t3 values (19);
insert into t3 values (17);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(mod(col1,10) as signed) from t1 order by col1;
-cast(mod(col1,10) as signed)
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t6;
+select mod(col1,10) from t1 order by col1;
+mod(col1,10)
5
9
select * from t1 order by col1;
col1
-5.0000
-19.0000
+5
+19
select * from t2 order by col1;
col1
-5.0000
-17.0000
-19.0000
+5
+17
+19
select * from t3 order by col1;
col1
-5.0000
-17.0000
-19.0000
+5
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15 where col1=5.0000;
-update t2 set col1=15 where col1=5.0000;
-update t3 set col1=15 where col1=5.0000;
-update t4 set col1=15 where col1=5.0000;
-update t5 set col1=15 where col1=5.0000;
-update t6 set col1=15 where col1=5.0000;
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+update t1 set col1=15 where col1=5;
+update t2 set col1=15 where col1=5;
+update t3 set col1=15 where col1=5;
+update t4 set col1=15 where col1=5;
+update t5 set col1=15 where col1=5;
+update t6 set col1=15 where col1=5;
select * from t1 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t2 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
-------------------------------------------------------------------------
---- Alter tables with cast(mod(col1,10) as signed)
+--- Alter tables with mod(col1,10)
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -3320,11 +2070,11 @@ create table t44 engine='INNODB' as select * from t4;
create table t55 engine='INNODB' as select * from t5;
create table t66 engine='INNODB' as select * from t6;
alter table t11
-partition by range(cast(mod(col1,10) as signed))
+partition by range(mod(col1,10))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(cast(mod(col1,10) as signed))
+partition by list(mod(col1,10))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3333,15 +2083,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(cast(mod(col1,10) as signed));
+partition by hash(mod(col1,10));
alter table t44
partition by range(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3351,40 +2101,163 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t22 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t33 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t44 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
---------------------------
---- some alter table begin
---------------------------
@@ -3393,19 +2266,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
alter table t55
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 5
+subpartition by hash(mod(col1,10)) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3417,54 +2290,259 @@ show create table t55;
Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(mod(col1,10) as signed)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
+ `col1` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (mod(col1,10)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition s1 into
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition s1 into
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(mod(col1,10) as signed)
+--- Delete rows and partitions of tables with mod(col1,10)
-------------------------------------------------------------------------
delete from t1 where col1=19;
delete from t2 where col1=19;
@@ -3474,27 +2552,109 @@ delete from t5 where col1=19;
delete from t6 where col1=19;
select * from t1 order by col1;
col1
-15.0000
+15
select * from t2 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t3 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
insert into t1 values (19);
insert into t2 values (19);
insert into t3 values (19);
@@ -3503,39 +2663,162 @@ insert into t5 values (60,19);
insert into t6 values (60,19);
select * from t1 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t2 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -3547,20 +2830,127 @@ select * from t2 order by col1;
col1
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-60 19.0000
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t5 order by colint;
colint col1
-60 19.0000
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t6 order by colint;
colint col1
-60 19.0000
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(mod(col1,10) as signed)
+--- Delete rows and partitions of tables with mod(col1,10)
-------------------------------------------------------------------------
delete from t11 where col1=19;
delete from t22 where col1=19;
@@ -3570,27 +2960,109 @@ delete from t55 where col1=19;
delete from t66 where col1=19;
select * from t11 order by col1;
col1
-15.0000
+15
select * from t22 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t33 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t44 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
insert into t11 values (19);
insert into t22 values (19);
insert into t33 values (19);
@@ -3599,533 +3071,162 @@ insert into t55 values (60,19);
insert into t66 values (60,19);
select * from t11 order by col1;
col1
-15.0000
-19.0000
-select * from t22 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t33 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t44 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-select * from t55 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-select * from t66 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-select * from t22 order by col1;
-col1
-select * from t33 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t44 order by colint;
-colint col1
-60 19.0000
-select * from t55 order by colint;
-colint col1
-60 19.0000
-select * from t66 order by colint;
-colint col1
-60 19.0000
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- ord(col1) in partition with coltype char(3)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with ord(col1)
--------------------------------------------------------------------------
-create table t1 (col1 char(3)) engine='INNODB'
-partition by range(ord(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 char(3)) engine='INNODB'
-partition by list(ord(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 char(3)) engine='INNODB'
-partition by hash(ord(col1));
-create table t4 (colint int, col1 char(3)) engine='INNODB'
-partition by range(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 char(3)) engine='INNODB'
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 char(3)) engine='INNODB'
-partition by range(colint)
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with ord(col1)
--------------------------------------------------------------------------
-insert into t1 values ('1');
-insert into t1 values ('9');
-insert into t2 values ('1');
-insert into t2 values ('9');
-insert into t2 values ('3');
-insert into t3 values ('1');
-insert into t3 values ('9');
-insert into t3 values ('3');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t6;
-select ord(col1) from t1 order by col1;
-ord(col1)
-49
-57
-select * from t1 order by col1;
-col1
-1
-9
-select * from t2 order by col1;
-col1
-1
-3
-9
-select * from t3 order by col1;
-col1
-1
-3
-9
-select * from t4 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-update t1 set col1='8' where col1='1';
-update t2 set col1='8' where col1='1';
-update t3 set col1='8' where col1='1';
-update t4 set col1='8' where col1='1';
-update t5 set col1='8' where col1='1';
-update t6 set col1='8' where col1='1';
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Alter tables with ord(col1)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='INNODB' as select * from t1;
-create table t22 engine='INNODB' as select * from t2;
-create table t33 engine='INNODB' as select * from t3;
-create table t44 engine='INNODB' as select * from t4;
-create table t55 engine='INNODB' as select * from t5;
-create table t66 engine='INNODB' as select * from t6;
-alter table t11
-partition by range(ord(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(ord(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(ord(col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t55
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` char(3) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (ord(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ord(col1)
--------------------------------------------------------------------------
-delete from t1 where col1='9';
-delete from t2 where col1='9';
-delete from t3 where col1='9';
-delete from t4 where col1='9';
-delete from t5 where col1='9';
-delete from t6 where col1='9';
-select * from t1 order by col1;
-col1
-8
-select * from t2 order by col1;
-col1
-3
-8
-select * from t3 order by col1;
-col1
-3
-8
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t1 values ('9');
-insert into t2 values ('9');
-insert into t3 values ('9');
-insert into t4 values (60,'9');
-insert into t5 values (60,'9');
-insert into t6 values (60,'9');
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t6 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-60 9
-select * from t5 order by colint;
-colint col1
-60 9
-select * from t6 order by colint;
-colint col1
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ord(col1)
--------------------------------------------------------------------------
-delete from t11 where col1='9';
-delete from t22 where col1='9';
-delete from t33 where col1='9';
-delete from t44 where col1='9';
-delete from t55 where col1='9';
-delete from t66 where col1='9';
-select * from t11 order by col1;
-col1
-8
-select * from t22 order by col1;
-col1
-3
-8
-select * from t33 order by col1;
-col1
-3
-8
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t11 values ('9');
-insert into t22 values ('9');
-insert into t33 values ('9');
-insert into t44 values (60,'9');
-insert into t55 values (60,'9');
-insert into t66 values (60,'9');
-select * from t11 order by col1;
-col1
-8
-9
+15
+19
select * from t22 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t33 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t44 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t55 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t66 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -4133,26 +3234,129 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
-8
-9
select * from t22 order by col1;
col1
-3
-8
-9
select * from t33 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t44 order by colint;
colint col1
-60 9
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t55 order by colint;
colint col1
-60 9
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t66 order by colint;
colint col1
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
-------------------------
---- some alter table end
-------------------------
@@ -4225,9 +3429,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select day(col1) from t1 order by col1;
day(col1)
17
@@ -4721,9 +3925,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofmonth(col1) from t1 order by col1;
dayofmonth(col1)
17
@@ -5217,9 +4421,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-02-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofweek(col1) from t1 order by col1;
dayofweek(col1)
3
@@ -5725,9 +4929,9 @@ insert into t2 values ('2006-02-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-02-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofyear(col1) from t1 order by col1;
dayofyear(col1)
3
@@ -6223,9 +5427,9 @@ insert into t2 values ('2006-02-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-02-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofyear(col1) from t1 order by col1;
dayofyear(col1)
3
@@ -6721,9 +5925,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-02-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select extract(month from col1) from t1 order by col1;
extract(month from col1)
1
@@ -7219,9 +6423,9 @@ insert into t2 values ('21:59');
insert into t3 values ('09:09');
insert into t3 values ('14:30');
insert into t3 values ('21:59');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select hour(col1) from t1 order by col1;
hour(col1)
9
@@ -7723,9 +6927,9 @@ insert into t2 values ('00:59:22.000024');
insert into t3 values ('09:09:15.000002');
insert into t3 values ('04:30:01.000018');
insert into t3 values ('00:59:22.000024');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select microsecond(col1) from t1 order by col1;
microsecond(col1)
0
@@ -8213,9 +7417,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:15');
insert into t3 values ('14:30:45');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select minute(col1) from t1 order by col1;
minute(col1)
9
@@ -8723,9 +7927,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:09');
insert into t3 values ('14:30:20');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select second(col1) from t1 order by col1;
second(col1)
9
@@ -9233,9 +8437,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:09');
insert into t3 values ('14:30:20');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select second(col1) from t1 order by col1;
second(col1)
9
@@ -9743,9 +8947,9 @@ insert into t2 values ('2006-05-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-12-17');
insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select month(col1) from t1 order by col1;
month(col1)
1
@@ -10247,9 +9451,9 @@ insert into t2 values ('2006-09-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-12-17');
insert into t3 values ('2006-09-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select quarter(col1) from t1 order by col1;
quarter(col1)
1
@@ -10749,9 +9953,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:15');
insert into t3 values ('14:30:45');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select time_to_sec(col1)-(time_to_sec(col1)-20) from t1 order by col1;
time_to_sec(col1)-(time_to_sec(col1)-20)
20
@@ -11257,9 +10461,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select to_days(col1)-to_days('2006-01-01') from t1 order by col1;
to_days(col1)-to_days('2006-01-01')
16
@@ -11701,7 +10905,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- weekday(col1) in partition with coltype date
+--- datediff(col1, '2006-01-01') in partition with coltype date
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -11710,14 +10914,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with weekday(col1)
+--- Create tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
create table t1 (col1 date) engine='INNODB'
-partition by range(weekday(col1))
+partition by range(datediff(col1, '2006-01-01'))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t2 (col1 date) engine='INNODB'
-partition by list(weekday(col1))
+partition by list(datediff(col1, '2006-01-01'))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11726,15 +10930,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t3 (col1 date) engine='INNODB'
-partition by hash(weekday(col1));
+partition by hash(datediff(col1, '2006-01-01'));
create table t4 (colint int, col1 date) engine='INNODB'
partition by range(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t5 (colint int, col1 date) engine='INNODB'
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11744,40 +10948,40 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t6 (colint int, col1 date) engine='INNODB'
partition by range(colint)
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with weekday(col1)
+--- Access tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-insert into t1 values ('2006-12-03');
-insert into t1 values ('2006-11-17');
-insert into t2 values ('2006-12-03');
-insert into t2 values ('2006-11-17');
-insert into t2 values ('2006-05-25');
-insert into t3 values ('2006-12-03');
-insert into t3 values ('2006-11-17');
-insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
-select weekday(col1) from t1 order by col1;
-weekday(col1)
-4
-6
+insert into t1 values ('2006-02-03');
+insert into t1 values ('2006-01-17');
+insert into t2 values ('2006-02-03');
+insert into t2 values ('2006-01-17');
+insert into t2 values ('2006-01-25');
+insert into t3 values ('2006-02-03');
+insert into t3 values ('2006-01-17');
+insert into t3 values ('2006-01-25');
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
+select datediff(col1, '2006-01-01') from t1 order by col1;
+datediff(col1, '2006-01-01')
+16
+33
select * from t1 order by col1;
col1
-2006-11-17
-2006-12-03
+2006-01-17
+2006-02-03
select * from t2 order by col1;
col1
-2006-05-25
-2006-11-17
-2006-12-03
+2006-01-17
+2006-01-25
+2006-02-03
select * from t3 order by col1;
col1
-2006-05-25
-2006-11-17
-2006-12-03
+2006-01-17
+2006-01-25
+2006-02-03
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -11796,46 +11000,46 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-update t1 set col1='2006-02-06' where col1='2006-12-03';
-update t2 set col1='2006-02-06' where col1='2006-12-03';
-update t3 set col1='2006-02-06' where col1='2006-12-03';
-update t4 set col1='2006-02-06' where col1='2006-12-03';
-update t5 set col1='2006-02-06' where col1='2006-12-03';
-update t6 set col1='2006-02-06' where col1='2006-12-03';
+update t1 set col1='2006-02-06' where col1='2006-02-03';
+update t2 set col1='2006-02-06' where col1='2006-02-03';
+update t3 set col1='2006-02-06' where col1='2006-02-03';
+update t4 set col1='2006-02-06' where col1='2006-02-03';
+update t5 set col1='2006-02-06' where col1='2006-02-03';
+update t6 set col1='2006-02-06' where col1='2006-02-03';
select * from t1 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t5 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t6 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Alter tables with weekday(col1)
+--- Alter tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -11850,11 +11054,11 @@ create table t44 engine='INNODB' as select * from t4;
create table t55 engine='INNODB' as select * from t5;
create table t66 engine='INNODB' as select * from t6;
alter table t11
-partition by range(weekday(col1))
+partition by range(datediff(col1, '2006-01-01'))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(weekday(col1))
+partition by list(datediff(col1, '2006-01-01'))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11863,15 +11067,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(weekday(col1));
+partition by hash(datediff(col1, '2006-01-01'));
alter table t44
partition by range(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11881,37 +11085,37 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t55 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11923,19 +11127,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
alter table t55
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 5
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11948,10 +11152,10 @@ Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
`col1` date DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekday(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (datediff(col1, '2006-01-01')) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
select * from t55 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11960,17 +11164,17 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11979,93 +11183,88 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekday(col1)
+--- Delete rows and partitions of tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-delete from t1 where col1='2006-11-17';
-delete from t2 where col1='2006-11-17';
-delete from t3 where col1='2006-11-17';
-delete from t4 where col1='2006-11-17';
-delete from t5 where col1='2006-11-17';
-delete from t6 where col1='2006-11-17';
+delete from t1 where col1='2006-01-17';
+delete from t2 where col1='2006-01-17';
+delete from t3 where col1='2006-01-17';
+delete from t4 where col1='2006-01-17';
+delete from t5 where col1='2006-01-17';
+delete from t6 where col1='2006-01-17';
select * from t1 order by col1;
col1
2006-02-06
select * from t2 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t3 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t4 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
select * from t5 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-insert into t1 values ('2006-11-17');
-insert into t2 values ('2006-11-17');
-insert into t3 values ('2006-11-17');
-insert into t4 values (60,'2006-11-17');
-insert into t5 values (60,'2006-11-17');
-insert into t6 values (60,'2006-11-17');
+insert into t1 values ('2006-01-17');
+insert into t2 values ('2006-01-17');
+insert into t3 values ('2006-01-17');
+insert into t4 values (60,'2006-01-17');
+insert into t5 values (60,'2006-01-17');
+insert into t6 values (60,'2006-01-17');
select * from t1 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t5 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t6 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -12073,95 +11272,95 @@ alter table t5 drop partition p0;
alter table t6 drop partition p0;
select * from t1 order by col1;
col1
+2006-01-17
+2006-02-06
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
+2006-02-06
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t5 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t6 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekday(col1)
+--- Delete rows and partitions of tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-delete from t11 where col1='2006-11-17';
-delete from t22 where col1='2006-11-17';
-delete from t33 where col1='2006-11-17';
-delete from t44 where col1='2006-11-17';
-delete from t55 where col1='2006-11-17';
-delete from t66 where col1='2006-11-17';
+delete from t11 where col1='2006-01-17';
+delete from t22 where col1='2006-01-17';
+delete from t33 where col1='2006-01-17';
+delete from t44 where col1='2006-01-17';
+delete from t55 where col1='2006-01-17';
+delete from t66 where col1='2006-01-17';
select * from t11 order by col1;
col1
2006-02-06
select * from t22 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t33 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t44 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
select * from t55 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-insert into t11 values ('2006-11-17');
-insert into t22 values ('2006-11-17');
-insert into t33 values ('2006-11-17');
-insert into t44 values (60,'2006-11-17');
-insert into t55 values (60,'2006-11-17');
-insert into t66 values (60,'2006-11-17');
+insert into t11 values ('2006-01-17');
+insert into t22 values ('2006-01-17');
+insert into t33 values ('2006-01-17');
+insert into t44 values (60,'2006-01-17');
+insert into t55 values (60,'2006-01-17');
+insert into t66 values (60,'2006-01-17');
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t55 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t66 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -12169,22 +11368,27 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
+2006-01-17
+2006-02-06
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
+2006-02-06
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t55 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t66 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
-------------------------
---- some alter table end
-------------------------
@@ -12201,7 +11405,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- weekofyear(col1) in partition with coltype date
+--- weekday(col1) in partition with coltype date
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -12210,14 +11414,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with weekofyear(col1)
+--- Create tables with weekday(col1)
-------------------------------------------------------------------------
create table t1 (col1 date) engine='INNODB'
-partition by range(weekofyear(col1))
+partition by range(weekday(col1))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t2 (col1 date) engine='INNODB'
-partition by list(weekofyear(col1))
+partition by list(weekday(col1))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12226,15 +11430,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t3 (col1 date) engine='INNODB'
-partition by hash(weekofyear(col1));
+partition by hash(weekday(col1));
create table t4 (colint int, col1 date) engine='INNODB'
partition by range(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t5 (colint int, col1 date) engine='INNODB'
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12244,40 +11448,40 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t6 (colint int, col1 date) engine='INNODB'
partition by range(colint)
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with weekofyear(col1)
+--- Access tables with weekday(col1)
-------------------------------------------------------------------------
-insert into t1 values ('2006-01-03');
-insert into t1 values ('2006-03-17');
-insert into t2 values ('2006-01-03');
-insert into t2 values ('2006-03-17');
+insert into t1 values ('2006-12-03');
+insert into t1 values ('2006-11-17');
+insert into t2 values ('2006-12-03');
+insert into t2 values ('2006-11-17');
insert into t2 values ('2006-05-25');
-insert into t3 values ('2006-01-03');
-insert into t3 values ('2006-03-17');
+insert into t3 values ('2006-12-03');
+insert into t3 values ('2006-11-17');
insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
-select weekofyear(col1) from t1 order by col1;
-weekofyear(col1)
-1
-11
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
+select weekday(col1) from t1 order by col1;
+weekday(col1)
+4
+6
select * from t1 order by col1;
col1
-2006-01-03
-2006-03-17
+2006-11-17
+2006-12-03
select * from t2 order by col1;
col1
-2006-01-03
-2006-03-17
2006-05-25
+2006-11-17
+2006-12-03
select * from t3 order by col1;
col1
-2006-01-03
-2006-03-17
2006-05-25
+2006-11-17
+2006-12-03
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12296,26 +11500,26 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-update t1 set col1='2006-09-06' where col1='2006-01-03';
-update t2 set col1='2006-09-06' where col1='2006-01-03';
-update t3 set col1='2006-09-06' where col1='2006-01-03';
-update t4 set col1='2006-09-06' where col1='2006-01-03';
-update t5 set col1='2006-09-06' where col1='2006-01-03';
-update t6 set col1='2006-09-06' where col1='2006-01-03';
+update t1 set col1='2006-02-06' where col1='2006-12-03';
+update t2 set col1='2006-02-06' where col1='2006-12-03';
+update t3 set col1='2006-02-06' where col1='2006-12-03';
+update t4 set col1='2006-02-06' where col1='2006-12-03';
+update t5 set col1='2006-02-06' where col1='2006-12-03';
+update t6 set col1='2006-02-06' where col1='2006-12-03';
select * from t1 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t2 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12335,7 +11539,7 @@ colint col1
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Alter tables with weekofyear(col1)
+--- Alter tables with weekday(col1)
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -12350,11 +11554,11 @@ create table t44 engine='INNODB' as select * from t4;
create table t55 engine='INNODB' as select * from t5;
create table t66 engine='INNODB' as select * from t6;
alter table t11
-partition by range(weekofyear(col1))
+partition by range(weekday(col1))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(weekofyear(col1))
+partition by list(weekday(col1))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12363,15 +11567,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(weekofyear(col1));
+partition by hash(weekday(col1));
alter table t44
partition by range(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12381,22 +11585,22 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t22 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
1 2006-02-03
@@ -12423,19 +11627,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
alter table t55
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 5
+subpartition by hash(weekday(col1)) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12448,7 +11652,7 @@ Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
`col1` date DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekofyear(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekday(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = InnoDB, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = InnoDB, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = InnoDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = InnoDB, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
select * from t55 order by colint;
colint col1
1 2006-02-03
@@ -12466,7 +11670,7 @@ colint col1
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
@@ -12485,7 +11689,7 @@ colint col1
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
@@ -12494,25 +11698,25 @@ colint col1
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekofyear(col1)
+--- Delete rows and partitions of tables with weekday(col1)
-------------------------------------------------------------------------
-delete from t1 where col1='2006-03-17';
-delete from t2 where col1='2006-03-17';
-delete from t3 where col1='2006-03-17';
-delete from t4 where col1='2006-03-17';
-delete from t5 where col1='2006-03-17';
-delete from t6 where col1='2006-03-17';
+delete from t1 where col1='2006-11-17';
+delete from t2 where col1='2006-11-17';
+delete from t3 where col1='2006-11-17';
+delete from t4 where col1='2006-11-17';
+delete from t5 where col1='2006-11-17';
+delete from t6 where col1='2006-11-17';
select * from t1 order by col1;
col1
-2006-09-06
+2006-02-06
select * from t2 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t3 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12525,47 +11729,47 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-insert into t1 values ('2006-03-17');
-insert into t2 values ('2006-03-17');
-insert into t3 values ('2006-03-17');
-insert into t4 values (60,'2006-03-17');
-insert into t5 values (60,'2006-03-17');
-insert into t6 values (60,'2006-03-17');
+insert into t1 values ('2006-11-17');
+insert into t2 values ('2006-11-17');
+insert into t3 values ('2006-11-17');
+insert into t4 values (60,'2006-11-17');
+insert into t5 values (60,'2006-11-17');
+insert into t6 values (60,'2006-11-17');
select * from t1 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t2 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t5 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t6 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -12573,46 +11777,42 @@ alter table t5 drop partition p0;
alter table t6 drop partition p0;
select * from t1 order by col1;
col1
-2006-09-06
select * from t2 order by col1;
col1
-2006-03-17
-2006-05-25
-2006-09-06
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t5 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t6 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekofyear(col1)
+--- Delete rows and partitions of tables with weekday(col1)
-------------------------------------------------------------------------
-delete from t11 where col1='2006-03-17';
-delete from t22 where col1='2006-03-17';
-delete from t33 where col1='2006-03-17';
-delete from t44 where col1='2006-03-17';
-delete from t55 where col1='2006-03-17';
-delete from t66 where col1='2006-03-17';
+delete from t11 where col1='2006-11-17';
+delete from t22 where col1='2006-11-17';
+delete from t33 where col1='2006-11-17';
+delete from t44 where col1='2006-11-17';
+delete from t55 where col1='2006-11-17';
+delete from t66 where col1='2006-11-17';
select * from t11 order by col1;
col1
-2006-09-06
+2006-02-06
select * from t22 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t33 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t44 order by colint;
colint col1
1 2006-02-03
@@ -12625,47 +11825,47 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-insert into t11 values ('2006-03-17');
-insert into t22 values ('2006-03-17');
-insert into t33 values ('2006-03-17');
-insert into t44 values (60,'2006-03-17');
-insert into t55 values (60,'2006-03-17');
-insert into t66 values (60,'2006-03-17');
+insert into t11 values ('2006-11-17');
+insert into t22 values ('2006-11-17');
+insert into t33 values ('2006-11-17');
+insert into t44 values (60,'2006-11-17');
+insert into t55 values (60,'2006-11-17');
+insert into t66 values (60,'2006-11-17');
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t22 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t55 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t66 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -12673,26 +11873,22 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
-2006-09-06
select * from t22 order by col1;
col1
-2006-03-17
-2006-05-25
-2006-09-06
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t55 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t66 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
-------------------------
---- some alter table end
-------------------------
@@ -12765,9 +11961,9 @@ insert into t2 values ('2004-05-25');
insert into t3 values ('1996-01-03');
insert into t3 values ('2000-02-17');
insert into t3 values ('2004-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select year(col1)-1990 from t1 order by col1;
year(col1)-1990
6
@@ -13269,9 +12465,9 @@ insert into t2 values ('2006-03-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-08-17');
insert into t3 values ('2006-03-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select yearweek(col1)-200600 from t1 order by col1;
yearweek(col1)-200600
1
diff --git a/mysql-test/suite/parts/r/part_supported_sql_func_myisam.result b/mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
index 3e668139c7d..f14f9517646 100644
--- a/mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
+++ b/mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
@@ -55,9 +55,9 @@ insert into t2 values (17 );
insert into t3 values (5 );
insert into t3 values (13 );
insert into t3 values (17 );
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_int.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t6;
select abs(col1) from t1 order by col1;
abs(col1)
5
@@ -1675,7 +1675,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- ascii(col1) in partition with coltype char(1)
+--- mod(col1,10) in partition with coltype int
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -1684,1510 +1684,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with ascii(col1)
+--- Create tables with mod(col1,10)
-------------------------------------------------------------------------
-create table t1 (col1 char(1)) engine='MYISAM'
-partition by range(ascii(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 char(1)) engine='MYISAM'
-partition by list(ascii(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 char(1)) engine='MYISAM'
-partition by hash(ascii(col1));
-create table t4 (colint int, col1 char(1)) engine='MYISAM'
-partition by range(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 char(1)) engine='MYISAM'
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 char(1)) engine='MYISAM'
-partition by range(colint)
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with ascii(col1)
--------------------------------------------------------------------------
-insert into t1 values ('1');
-insert into t1 values ('9');
-insert into t2 values ('1');
-insert into t2 values ('9');
-insert into t2 values ('3');
-insert into t3 values ('1');
-insert into t3 values ('9');
-insert into t3 values ('3');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t6;
-select ascii(col1) from t1 order by col1;
-ascii(col1)
-49
-57
-select * from t1 order by col1;
-col1
-1
-9
-select * from t2 order by col1;
-col1
-1
-3
-9
-select * from t3 order by col1;
-col1
-1
-3
-9
-select * from t4 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-update t1 set col1='8' where col1='1';
-update t2 set col1='8' where col1='1';
-update t3 set col1='8' where col1='1';
-update t4 set col1='8' where col1='1';
-update t5 set col1='8' where col1='1';
-update t6 set col1='8' where col1='1';
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Alter tables with ascii(col1)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='MYISAM' as select * from t1;
-create table t22 engine='MYISAM' as select * from t2;
-create table t33 engine='MYISAM' as select * from t3;
-create table t44 engine='MYISAM' as select * from t4;
-create table t55 engine='MYISAM' as select * from t5;
-create table t66 engine='MYISAM' as select * from t6;
-alter table t11
-partition by range(ascii(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(ascii(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(ascii(col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t55
-partition by list(colint)
-subpartition by hash(ascii(col1)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` char(1) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (ascii(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ascii('5')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ascii(col1)
--------------------------------------------------------------------------
-delete from t1 where col1='9';
-delete from t2 where col1='9';
-delete from t3 where col1='9';
-delete from t4 where col1='9';
-delete from t5 where col1='9';
-delete from t6 where col1='9';
-select * from t1 order by col1;
-col1
-8
-select * from t2 order by col1;
-col1
-3
-8
-select * from t3 order by col1;
-col1
-3
-8
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t1 values ('9');
-insert into t2 values ('9');
-insert into t3 values ('9');
-insert into t4 values (60,'9');
-insert into t5 values (60,'9');
-insert into t6 values (60,'9');
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t6 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-60 9
-select * from t5 order by colint;
-colint col1
-60 9
-select * from t6 order by colint;
-colint col1
-60 9
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ascii(col1)
--------------------------------------------------------------------------
-delete from t11 where col1='9';
-delete from t22 where col1='9';
-delete from t33 where col1='9';
-delete from t44 where col1='9';
-delete from t55 where col1='9';
-delete from t66 where col1='9';
-select * from t11 order by col1;
-col1
-8
-select * from t22 order by col1;
-col1
-3
-8
-select * from t33 order by col1;
-col1
-3
-8
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t11 values ('9');
-insert into t22 values ('9');
-insert into t33 values ('9');
-insert into t44 values (60,'9');
-insert into t55 values (60,'9');
-insert into t66 values (60,'9');
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t66 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-60 9
-select * from t55 order by colint;
-colint col1
-60 9
-select * from t66 order by colint;
-colint col1
-60 9
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(ceiling(col1) as signed integer) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='MYISAM'
-partition by range(cast(ceiling(col1) as signed integer))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='MYISAM'
-partition by list(cast(ceiling(col1) as signed integer))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 float(7,4)) engine='MYISAM'
-partition by hash(cast(ceiling(col1) as signed integer));
-create table t4 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by range(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by range(colint)
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-insert into t1 values (5.1230);
-insert into t1 values (13.345);
-insert into t2 values (5.1230);
-insert into t2 values (13.345);
-insert into t2 values (17.987);
-insert into t3 values (5.1230);
-insert into t3 values (13.345);
-insert into t3 values (17.987);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(ceiling(col1) as signed integer) from t1 order by col1;
-cast(ceiling(col1) as signed integer)
-6
-14
-select * from t1 order by col1;
-col1
-5.1230
-13.3450
-select * from t2 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t3 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t4 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15.654 where col1=5.1230;
-update t2 set col1=15.654 where col1=5.1230;
-update t3 set col1=15.654 where col1=5.1230;
-update t4 set col1=15.654 where col1=5.1230;
-update t5 set col1=15.654 where col1=5.1230;
-update t6 set col1=15.654 where col1=5.1230;
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Alter tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='MYISAM' as select * from t1;
-create table t22 engine='MYISAM' as select * from t2;
-create table t33 engine='MYISAM' as select * from t3;
-create table t44 engine='MYISAM' as select * from t4;
-create table t55 engine='MYISAM' as select * from t5;
-create table t66 engine='MYISAM' as select * from t6;
-alter table t11
-partition by range(cast(ceiling(col1) as signed integer))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(cast(ceiling(col1) as signed integer))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(cast(ceiling(col1) as signed integer));
-alter table t44
-partition by range(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(ceiling(col1) as signed integer)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(ceiling(col1) as signed integer)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(ceiling(15) as signed integer)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-delete from t1 where col1=13.345;
-delete from t2 where col1=13.345;
-delete from t3 where col1=13.345;
-delete from t4 where col1=13.345;
-delete from t5 where col1=13.345;
-delete from t6 where col1=13.345;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t1 values (13.345);
-insert into t2 values (13.345);
-insert into t3 values (13.345);
-insert into t4 values (60,13.345);
-insert into t5 values (60,13.345);
-insert into t6 values (60,13.345);
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t6 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-60 13.3450
-select * from t5 order by colint;
-colint col1
-60 13.3450
-select * from t6 order by colint;
-colint col1
-60 13.3450
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(ceiling(col1) as signed integer)
--------------------------------------------------------------------------
-delete from t11 where col1=13.345;
-delete from t22 where col1=13.345;
-delete from t33 where col1=13.345;
-delete from t44 where col1=13.345;
-delete from t55 where col1=13.345;
-delete from t66 where col1=13.345;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t11 values (13.345);
-insert into t22 values (13.345);
-insert into t33 values (13.345);
-insert into t44 values (60,13.345);
-insert into t55 values (60,13.345);
-insert into t66 values (60,13.345);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t66 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-60 13.3450
-select * from t55 order by colint;
-colint col1
-60 13.3450
-select * from t66 order by colint;
-colint col1
-60 13.3450
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(floor(col1) as signed) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='MYISAM'
-partition by range(cast(floor(col1) as signed))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='MYISAM'
-partition by list(cast(floor(col1) as signed))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 float(7,4)) engine='MYISAM'
-partition by hash(cast(floor(col1) as signed));
-create table t4 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by range(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 float(7,4)) engine='MYISAM'
-partition by range(colint)
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-insert into t1 values (5.1230);
-insert into t1 values (13.345);
-insert into t2 values (5.1230);
-insert into t2 values (13.345);
-insert into t2 values (17.987);
-insert into t3 values (5.1230);
-insert into t3 values (13.345);
-insert into t3 values (17.987);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(floor(col1) as signed) from t1 order by col1;
-cast(floor(col1) as signed)
-5
-13
-select * from t1 order by col1;
-col1
-5.1230
-13.3450
-select * from t2 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t3 order by col1;
-col1
-5.1230
-13.3450
-17.9870
-select * from t4 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15.654 where col1=5.1230;
-update t2 set col1=15.654 where col1=5.1230;
-update t3 set col1=15.654 where col1=5.1230;
-update t4 set col1=15.654 where col1=5.1230;
-update t5 set col1=15.654 where col1=5.1230;
-update t6 set col1=15.654 where col1=5.1230;
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t6 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Alter tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='MYISAM' as select * from t1;
-create table t22 engine='MYISAM' as select * from t2;
-create table t33 engine='MYISAM' as select * from t3;
-create table t44 engine='MYISAM' as select * from t4;
-create table t55 engine='MYISAM' as select * from t5;
-create table t66 engine='MYISAM' as select * from t6;
-alter table t11
-partition by range(cast(floor(col1) as signed))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(cast(floor(col1) as signed))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(cast(floor(col1) as signed));
-alter table t44
-partition by range(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-alter table t55
-partition by list(colint)
-subpartition by hash(cast(floor(col1) as signed)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(floor(col1) as signed)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
-select * from t55 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (cast(floor(15.123) as signed)),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 15.6540
-2 13.3450
-3 17.9870
-4 15.6540
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-delete from t1 where col1=13.345;
-delete from t2 where col1=13.345;
-delete from t3 where col1=13.345;
-delete from t4 where col1=13.345;
-delete from t5 where col1=13.345;
-delete from t6 where col1=13.345;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t1 values (13.345);
-insert into t2 values (13.345);
-insert into t3 values (13.345);
-insert into t4 values (60,13.345);
-insert into t5 values (60,13.345);
-insert into t6 values (60,13.345);
-select * from t1 order by col1;
-col1
-13.3450
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t5 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t6 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-15.6540
-select * from t2 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t3 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t4 order by colint;
-colint col1
-60 13.3450
-select * from t5 order by colint;
-colint col1
-60 13.3450
-select * from t6 order by colint;
-colint col1
-60 13.3450
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(floor(col1) as signed)
--------------------------------------------------------------------------
-delete from t11 where col1=13.345;
-delete from t22 where col1=13.345;
-delete from t33 where col1=13.345;
-delete from t44 where col1=13.345;
-delete from t55 where col1=13.345;
-delete from t66 where col1=13.345;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-insert into t11 values (13.345);
-insert into t22 values (13.345);
-insert into t33 values (13.345);
-insert into t44 values (60,13.345);
-insert into t55 values (60,13.345);
-insert into t66 values (60,13.345);
-select * from t11 order by col1;
-col1
-13.3450
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t55 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-select * from t66 order by colint;
-colint col1
-1 15.6540
-3 17.9870
-4 15.6540
-60 13.3450
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-15.6540
-select * from t22 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t33 order by col1;
-col1
-13.3450
-15.6540
-17.9870
-select * from t44 order by colint;
-colint col1
-60 13.3450
-select * from t55 order by colint;
-colint col1
-60 13.3450
-select * from t66 order by colint;
-colint col1
-60 13.3450
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- cast(mod(col1,10) as signed) in partition with coltype float(7,4)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with cast(mod(col1,10) as signed)
--------------------------------------------------------------------------
-create table t1 (col1 float(7,4)) engine='MYISAM'
-partition by range(cast(mod(col1,10) as signed))
+create table t1 (col1 int) engine='MYISAM'
+partition by range(mod(col1,10))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
-create table t2 (col1 float(7,4)) engine='MYISAM'
-partition by list(cast(mod(col1,10) as signed))
+create table t2 (col1 int) engine='MYISAM'
+partition by list(mod(col1,10))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3195,16 +1699,16 @@ partition p3 values in (31,32,33,34,35,36,37,38,39,40),
partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
-create table t3 (col1 float(7,4)) engine='MYISAM'
-partition by hash(cast(mod(col1,10) as signed));
-create table t4 (colint int, col1 float(7,4)) engine='MYISAM'
+create table t3 (col1 int) engine='MYISAM'
+partition by hash(mod(col1,10));
+create table t4 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
-create table t5 (colint int, col1 float(7,4)) engine='MYISAM'
+create table t5 (colint int, col1 int) engine='MYISAM'
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3212,100 +1716,346 @@ partition p3 values in (31,32,33,34,35,36,37,38,39,40),
partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
-create table t6 (colint int, col1 float(7,4)) engine='MYISAM'
+create table t6 (colint int, col1 int) engine='MYISAM'
partition by range(colint)
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with cast(mod(col1,10) as signed)
+--- Access tables with mod(col1,10)
-------------------------------------------------------------------------
-insert into t1 values (5.0000);
+insert into t1 values (5);
insert into t1 values (19);
-insert into t2 values (5.0000);
+insert into t2 values (5);
insert into t2 values (19);
insert into t2 values (17);
-insert into t3 values (5.0000);
+insert into t3 values (5);
insert into t3 values (19);
insert into t3 values (17);
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_float.inc' into table t6;
-select cast(mod(col1,10) as signed) from t1 order by col1;
-cast(mod(col1,10) as signed)
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_int.inc' into table t6;
+select mod(col1,10) from t1 order by col1;
+mod(col1,10)
5
9
select * from t1 order by col1;
col1
-5.0000
-19.0000
+5
+19
select * from t2 order by col1;
col1
-5.0000
-17.0000
-19.0000
+5
+17
+19
select * from t3 order by col1;
col1
-5.0000
-17.0000
-19.0000
+5
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-update t1 set col1=15 where col1=5.0000;
-update t2 set col1=15 where col1=5.0000;
-update t3 set col1=15 where col1=5.0000;
-update t4 set col1=15 where col1=5.0000;
-update t5 set col1=15 where col1=5.0000;
-update t6 set col1=15 where col1=5.0000;
+1 5
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 5
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+update t1 set col1=15 where col1=5;
+update t2 set col1=15 where col1=5;
+update t3 set col1=15 where col1=5;
+update t4 set col1=15 where col1=5;
+update t5 set col1=15 where col1=5;
+update t6 set col1=15 where col1=5;
select * from t1 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t2 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
-------------------------------------------------------------------------
---- Alter tables with cast(mod(col1,10) as signed)
+--- Alter tables with mod(col1,10)
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -3320,11 +2070,11 @@ create table t44 engine='MYISAM' as select * from t4;
create table t55 engine='MYISAM' as select * from t5;
create table t66 engine='MYISAM' as select * from t6;
alter table t11
-partition by range(cast(mod(col1,10) as signed))
+partition by range(mod(col1,10))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(cast(mod(col1,10) as signed))
+partition by list(mod(col1,10))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3333,15 +2083,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(cast(mod(col1,10) as signed));
+partition by hash(mod(col1,10));
alter table t44
partition by range(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 2
+subpartition by hash(mod(col1,10)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3351,40 +2101,163 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t22 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t33 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t44 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
---------------------------
---- some alter table begin
---------------------------
@@ -3393,19 +2266,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-15.0000
-19.0000
+15
+19
alter table t55
partition by list(colint)
-subpartition by hash(cast(mod(col1,10) as signed)) subpartitions 5
+subpartition by hash(mod(col1,10)) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -3417,54 +2290,259 @@ show create table t55;
Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
- `col1` float(7,4) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (cast(mod(col1,10) as signed)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
+ `col1` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (mod(col1,10)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition s1 into
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
alter table t66
reorganize partition s1 into
-(partition p0 values less than (cast(mod(15,10) as signed)),
+(partition p0 values less than (mod(15,10)),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(mod(col1,10) as signed)
+--- Delete rows and partitions of tables with mod(col1,10)
-------------------------------------------------------------------------
delete from t1 where col1=19;
delete from t2 where col1=19;
@@ -3474,27 +2552,109 @@ delete from t5 where col1=19;
delete from t6 where col1=19;
select * from t1 order by col1;
col1
-15.0000
+15
select * from t2 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t3 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
insert into t1 values (19);
insert into t2 values (19);
insert into t3 values (19);
@@ -3503,39 +2663,162 @@ insert into t5 values (60,19);
insert into t6 values (60,19);
select * from t1 order by col1;
col1
-15.0000
-19.0000
+15
+19
select * from t2 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t5 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t6 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -3547,20 +2830,127 @@ select * from t2 order by col1;
col1
select * from t3 order by col1;
col1
-15.0000
-17.0000
-19.0000
+15
+17
+19
select * from t4 order by colint;
colint col1
-60 19.0000
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t5 order by colint;
colint col1
-60 19.0000
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t6 order by colint;
colint col1
-60 19.0000
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with cast(mod(col1,10) as signed)
+--- Delete rows and partitions of tables with mod(col1,10)
-------------------------------------------------------------------------
delete from t11 where col1=19;
delete from t22 where col1=19;
@@ -3570,27 +2960,109 @@ delete from t55 where col1=19;
delete from t66 where col1=19;
select * from t11 order by col1;
col1
-15.0000
+15
select * from t22 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t33 order by col1;
col1
-15.0000
-17.0000
+15
+17
select * from t44 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
select * from t55 order by colint;
colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
insert into t11 values (19);
insert into t22 values (19);
insert into t33 values (19);
@@ -3599,533 +3071,162 @@ insert into t55 values (60,19);
insert into t66 values (60,19);
select * from t11 order by col1;
col1
-15.0000
-19.0000
-select * from t22 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t33 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t44 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-select * from t55 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-select * from t66 order by colint;
-colint col1
-1 5.1230
-2 13.3450
-3 17.9870
-4 15.6540
-60 19.0000
-alter table t11 drop partition p0;
-alter table t22 drop partition p0;
-alter table t44 drop partition p0;
-alter table t55 drop partition p0;
-alter table t66 drop partition p0;
-select * from t11 order by col1;
-col1
-select * from t22 order by col1;
-col1
-select * from t33 order by col1;
-col1
-15.0000
-17.0000
-19.0000
-select * from t44 order by colint;
-colint col1
-60 19.0000
-select * from t55 order by colint;
-colint col1
-60 19.0000
-select * from t66 order by colint;
-colint col1
-60 19.0000
--------------------------
----- some alter table end
--------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
--------------------------------------------------------------------------
---- ord(col1) in partition with coltype char(3)
--------------------------------------------------------------------------
-drop table if exists t1 ;
-drop table if exists t2 ;
-drop table if exists t3 ;
-drop table if exists t4 ;
-drop table if exists t5 ;
-drop table if exists t6 ;
--------------------------------------------------------------------------
---- Create tables with ord(col1)
--------------------------------------------------------------------------
-create table t1 (col1 char(3)) engine='MYISAM'
-partition by range(ord(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t2 (col1 char(3)) engine='MYISAM'
-partition by list(ord(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t3 (col1 char(3)) engine='MYISAM'
-partition by hash(ord(col1));
-create table t4 (colint int, col1 char(3)) engine='MYISAM'
-partition by range(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-create table t5 (colint int, col1 char(3)) engine='MYISAM'
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-create table t6 (colint int, col1 char(3)) engine='MYISAM'
-partition by range(colint)
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
--------------------------------------------------------------------------
---- Access tables with ord(col1)
--------------------------------------------------------------------------
-insert into t1 values ('1');
-insert into t1 values ('9');
-insert into t2 values ('1');
-insert into t2 values ('9');
-insert into t2 values ('3');
-insert into t3 values ('1');
-insert into t3 values ('9');
-insert into t3 values ('3');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc' into table t6;
-select ord(col1) from t1 order by col1;
-ord(col1)
-49
-57
-select * from t1 order by col1;
-col1
-1
-9
-select * from t2 order by col1;
-col1
-1
-3
-9
-select * from t3 order by col1;
-col1
-1
-3
-9
-select * from t4 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 1
-2 9
-3 3
-4 8
-update t1 set col1='8' where col1='1';
-update t2 set col1='8' where col1='1';
-update t3 set col1='8' where col1='1';
-update t4 set col1='8' where col1='1';
-update t5 set col1='8' where col1='1';
-update t6 set col1='8' where col1='1';
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t6 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Alter tables with ord(col1)
--------------------------------------------------------------------------
-drop table if exists t11 ;
-drop table if exists t22 ;
-drop table if exists t33 ;
-drop table if exists t44 ;
-drop table if exists t55 ;
-drop table if exists t66 ;
-create table t11 engine='MYISAM' as select * from t1;
-create table t22 engine='MYISAM' as select * from t2;
-create table t33 engine='MYISAM' as select * from t3;
-create table t44 engine='MYISAM' as select * from t4;
-create table t55 engine='MYISAM' as select * from t5;
-create table t66 engine='MYISAM' as select * from t6;
-alter table t11
-partition by range(ord(col1))
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t22
-partition by list(ord(col1))
-(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t33
-partition by hash(ord(col1));
-alter table t44
-partition by range(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-alter table t55
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 2
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-alter table t66
-partition by range(colint)
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-select * from t22 order by col1;
-col1
-3
-8
-9
-select * from t33 order by col1;
-col1
-3
-8
-9
-select * from t44 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
----------------------------
----- some alter table begin
----------------------------
-alter table t11
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t11
-reorganize partition s1 into
-(partition p0 values less than (15),
-partition p1 values less than maxvalue);
-select * from t11 order by col1;
-col1
-8
-9
-alter table t55
-partition by list(colint)
-subpartition by hash(ord(col1)) subpartitions 5
-(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
-partition p1 values in (11,12,13,14,15,16,17,18,19,20),
-partition p2 values in (21,22,23,24,25,26,27,28,29,30),
-partition p3 values in (31,32,33,34,35,36,37,38,39,40),
-partition p4 values in (41,42,43,44,45,46,47,48,49,50),
-partition p5 values in (51,52,53,54,55,56,57,58,59,60)
-);
-show create table t55;
-Table Create Table
-t55 CREATE TABLE `t55` (
- `colint` int(11) DEFAULT NULL,
- `col1` char(3) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (ord(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
-select * from t55 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition p0,p1 into
-(partition s1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
-alter table t66
-reorganize partition s1 into
-(partition p0 values less than (ord('a')),
-partition p1 values less than maxvalue);
-select * from t66 order by colint;
-colint col1
-1 8
-2 9
-3 3
-4 8
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ord(col1)
--------------------------------------------------------------------------
-delete from t1 where col1='9';
-delete from t2 where col1='9';
-delete from t3 where col1='9';
-delete from t4 where col1='9';
-delete from t5 where col1='9';
-delete from t6 where col1='9';
-select * from t1 order by col1;
-col1
-8
-select * from t2 order by col1;
-col1
-3
-8
-select * from t3 order by col1;
-col1
-3
-8
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t1 values ('9');
-insert into t2 values ('9');
-insert into t3 values ('9');
-insert into t4 values (60,'9');
-insert into t5 values (60,'9');
-insert into t6 values (60,'9');
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t5 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-select * from t6 order by colint;
-colint col1
-1 8
-3 3
-4 8
-60 9
-alter table t1 drop partition p0;
-alter table t2 drop partition p0;
-alter table t4 drop partition p0;
-alter table t5 drop partition p0;
-alter table t6 drop partition p0;
-select * from t1 order by col1;
-col1
-8
-9
-select * from t2 order by col1;
-col1
-3
-8
-9
-select * from t3 order by col1;
-col1
-3
-8
-9
-select * from t4 order by colint;
-colint col1
-60 9
-select * from t5 order by colint;
-colint col1
-60 9
-select * from t6 order by colint;
-colint col1
--------------------------------------------------------------------------
---- Delete rows and partitions of tables with ord(col1)
--------------------------------------------------------------------------
-delete from t11 where col1='9';
-delete from t22 where col1='9';
-delete from t33 where col1='9';
-delete from t44 where col1='9';
-delete from t55 where col1='9';
-delete from t66 where col1='9';
-select * from t11 order by col1;
-col1
-8
-select * from t22 order by col1;
-col1
-3
-8
-select * from t33 order by col1;
-col1
-3
-8
-select * from t44 order by colint;
-colint col1
-1 8
-3 3
-4 8
-select * from t55 order by colint;
-colint col1
-1 8
-3 3
-4 8
-insert into t11 values ('9');
-insert into t22 values ('9');
-insert into t33 values ('9');
-insert into t44 values (60,'9');
-insert into t55 values (60,'9');
-insert into t66 values (60,'9');
-select * from t11 order by col1;
-col1
-8
-9
+15
+19
select * from t22 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t33 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t44 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t55 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t66 order by colint;
colint col1
-1 8
-3 3
-4 8
-60 9
+1 15
+2 13
+3 15
+4 17
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -4133,26 +3234,129 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
-8
-9
select * from t22 order by col1;
col1
-3
-8
-9
select * from t33 order by col1;
col1
-3
-8
-9
+15
+17
+19
select * from t44 order by colint;
colint col1
-60 9
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t55 order by colint;
colint col1
-60 9
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
select * from t66 order by colint;
colint col1
+5 23
+6 34
+7 56
+8 56
+9 45
+10 34
+11 78
+12 89
+13 67
+14 46
+15 34
+16 324
+17 345
+18 34
+19 78
+20 567
+21 4
+22 435
+23 34
+24 45
+25 4565
+26 4
+27 3
+28 2
+29 3
+30 15
+31 6
+32 8
+33 9
+34 745
+35 34
+36 34
+37 324
+38 67
+39 78
+40 89
+41 90
+42 78967
+50 56
+51 34
+55 123
+60 19
-------------------------
---- some alter table end
-------------------------
@@ -4225,9 +3429,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select day(col1) from t1 order by col1;
day(col1)
17
@@ -4721,9 +3925,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofmonth(col1) from t1 order by col1;
dayofmonth(col1)
17
@@ -5217,9 +4421,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-02-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofweek(col1) from t1 order by col1;
dayofweek(col1)
3
@@ -5725,9 +4929,9 @@ insert into t2 values ('2006-02-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-02-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofyear(col1) from t1 order by col1;
dayofyear(col1)
3
@@ -6223,9 +5427,9 @@ insert into t2 values ('2006-02-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-02-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select dayofyear(col1) from t1 order by col1;
dayofyear(col1)
3
@@ -6721,9 +5925,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-02-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select extract(month from col1) from t1 order by col1;
extract(month from col1)
1
@@ -7219,9 +6423,9 @@ insert into t2 values ('21:59');
insert into t3 values ('09:09');
insert into t3 values ('14:30');
insert into t3 values ('21:59');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select hour(col1) from t1 order by col1;
hour(col1)
9
@@ -7723,9 +6927,9 @@ insert into t2 values ('00:59:22.000024');
insert into t3 values ('09:09:15.000002');
insert into t3 values ('04:30:01.000018');
insert into t3 values ('00:59:22.000024');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select microsecond(col1) from t1 order by col1;
microsecond(col1)
0
@@ -8213,9 +7417,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:15');
insert into t3 values ('14:30:45');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select minute(col1) from t1 order by col1;
minute(col1)
9
@@ -8723,9 +7927,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:09');
insert into t3 values ('14:30:20');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select second(col1) from t1 order by col1;
second(col1)
9
@@ -9233,9 +8437,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:09');
insert into t3 values ('14:30:20');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select second(col1) from t1 order by col1;
second(col1)
9
@@ -9743,9 +8947,9 @@ insert into t2 values ('2006-05-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-12-17');
insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select month(col1) from t1 order by col1;
month(col1)
1
@@ -10247,9 +9451,9 @@ insert into t2 values ('2006-09-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-12-17');
insert into t3 values ('2006-09-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select quarter(col1) from t1 order by col1;
quarter(col1)
1
@@ -10749,9 +9953,9 @@ insert into t2 values ('21:59:22');
insert into t3 values ('09:09:15');
insert into t3 values ('14:30:45');
insert into t3 values ('21:59:22');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_time.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_time.inc' into table t6;
select time_to_sec(col1)-(time_to_sec(col1)-20) from t1 order by col1;
time_to_sec(col1)-(time_to_sec(col1)-20)
20
@@ -11257,9 +10461,9 @@ insert into t2 values ('2006-01-25');
insert into t3 values ('2006-02-03');
insert into t3 values ('2006-01-17');
insert into t3 values ('2006-01-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select to_days(col1)-to_days('2006-01-01') from t1 order by col1;
to_days(col1)-to_days('2006-01-01')
16
@@ -11701,7 +10905,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- weekday(col1) in partition with coltype date
+--- datediff(col1, '2006-01-01') in partition with coltype date
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -11710,14 +10914,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with weekday(col1)
+--- Create tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
create table t1 (col1 date) engine='MYISAM'
-partition by range(weekday(col1))
+partition by range(datediff(col1, '2006-01-01'))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t2 (col1 date) engine='MYISAM'
-partition by list(weekday(col1))
+partition by list(datediff(col1, '2006-01-01'))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11726,15 +10930,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t3 (col1 date) engine='MYISAM'
-partition by hash(weekday(col1));
+partition by hash(datediff(col1, '2006-01-01'));
create table t4 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t5 (colint int, col1 date) engine='MYISAM'
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11744,40 +10948,40 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t6 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with weekday(col1)
+--- Access tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-insert into t1 values ('2006-12-03');
-insert into t1 values ('2006-11-17');
-insert into t2 values ('2006-12-03');
-insert into t2 values ('2006-11-17');
-insert into t2 values ('2006-05-25');
-insert into t3 values ('2006-12-03');
-insert into t3 values ('2006-11-17');
-insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
-select weekday(col1) from t1 order by col1;
-weekday(col1)
-4
-6
+insert into t1 values ('2006-02-03');
+insert into t1 values ('2006-01-17');
+insert into t2 values ('2006-02-03');
+insert into t2 values ('2006-01-17');
+insert into t2 values ('2006-01-25');
+insert into t3 values ('2006-02-03');
+insert into t3 values ('2006-01-17');
+insert into t3 values ('2006-01-25');
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
+select datediff(col1, '2006-01-01') from t1 order by col1;
+datediff(col1, '2006-01-01')
+16
+33
select * from t1 order by col1;
col1
-2006-11-17
-2006-12-03
+2006-01-17
+2006-02-03
select * from t2 order by col1;
col1
-2006-05-25
-2006-11-17
-2006-12-03
+2006-01-17
+2006-01-25
+2006-02-03
select * from t3 order by col1;
col1
-2006-05-25
-2006-11-17
-2006-12-03
+2006-01-17
+2006-01-25
+2006-02-03
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -11796,46 +11000,46 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-update t1 set col1='2006-02-06' where col1='2006-12-03';
-update t2 set col1='2006-02-06' where col1='2006-12-03';
-update t3 set col1='2006-02-06' where col1='2006-12-03';
-update t4 set col1='2006-02-06' where col1='2006-12-03';
-update t5 set col1='2006-02-06' where col1='2006-12-03';
-update t6 set col1='2006-02-06' where col1='2006-12-03';
+update t1 set col1='2006-02-06' where col1='2006-02-03';
+update t2 set col1='2006-02-06' where col1='2006-02-03';
+update t3 set col1='2006-02-06' where col1='2006-02-03';
+update t4 set col1='2006-02-06' where col1='2006-02-03';
+update t5 set col1='2006-02-06' where col1='2006-02-03';
+update t6 set col1='2006-02-06' where col1='2006-02-03';
select * from t1 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t5 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t6 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Alter tables with weekday(col1)
+--- Alter tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -11850,11 +11054,11 @@ create table t44 engine='MYISAM' as select * from t4;
create table t55 engine='MYISAM' as select * from t5;
create table t66 engine='MYISAM' as select * from t6;
alter table t11
-partition by range(weekday(col1))
+partition by range(datediff(col1, '2006-01-01'))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(weekday(col1))
+partition by list(datediff(col1, '2006-01-01'))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11863,15 +11067,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(weekday(col1));
+partition by hash(datediff(col1, '2006-01-01'));
alter table t44
partition by range(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 2
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11881,37 +11085,37 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t55 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11923,19 +11127,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
alter table t55
partition by list(colint)
-subpartition by hash(weekday(col1)) subpartitions 5
+subpartition by hash(datediff(col1, '2006-01-01')) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -11948,10 +11152,10 @@ Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
`col1` date DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekday(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (datediff(col1, '2006-01-01')) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
select * from t55 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11960,17 +11164,17 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
@@ -11979,93 +11183,88 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekday('2006-10-14')),
+(partition p0 values less than (datediff('2006-02-02', '2006-01-01')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
-1 2006-02-03
+1 2006-02-06
2 2006-01-17
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekday(col1)
+--- Delete rows and partitions of tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-delete from t1 where col1='2006-11-17';
-delete from t2 where col1='2006-11-17';
-delete from t3 where col1='2006-11-17';
-delete from t4 where col1='2006-11-17';
-delete from t5 where col1='2006-11-17';
-delete from t6 where col1='2006-11-17';
+delete from t1 where col1='2006-01-17';
+delete from t2 where col1='2006-01-17';
+delete from t3 where col1='2006-01-17';
+delete from t4 where col1='2006-01-17';
+delete from t5 where col1='2006-01-17';
+delete from t6 where col1='2006-01-17';
select * from t1 order by col1;
col1
2006-02-06
select * from t2 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t3 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t4 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
select * from t5 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-insert into t1 values ('2006-11-17');
-insert into t2 values ('2006-11-17');
-insert into t3 values ('2006-11-17');
-insert into t4 values (60,'2006-11-17');
-insert into t5 values (60,'2006-11-17');
-insert into t6 values (60,'2006-11-17');
+insert into t1 values ('2006-01-17');
+insert into t2 values ('2006-01-17');
+insert into t3 values ('2006-01-17');
+insert into t4 values (60,'2006-01-17');
+insert into t5 values (60,'2006-01-17');
+insert into t6 values (60,'2006-01-17');
select * from t1 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t5 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t6 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -12073,95 +11272,95 @@ alter table t5 drop partition p0;
alter table t6 drop partition p0;
select * from t1 order by col1;
col1
+2006-01-17
+2006-02-06
select * from t2 order by col1;
col1
+2006-01-17
+2006-01-25
+2006-02-06
select * from t3 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t4 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t5 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t6 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekday(col1)
+--- Delete rows and partitions of tables with datediff(col1, '2006-01-01')
-------------------------------------------------------------------------
-delete from t11 where col1='2006-11-17';
-delete from t22 where col1='2006-11-17';
-delete from t33 where col1='2006-11-17';
-delete from t44 where col1='2006-11-17';
-delete from t55 where col1='2006-11-17';
-delete from t66 where col1='2006-11-17';
+delete from t11 where col1='2006-01-17';
+delete from t22 where col1='2006-01-17';
+delete from t33 where col1='2006-01-17';
+delete from t44 where col1='2006-01-17';
+delete from t55 where col1='2006-01-17';
+delete from t66 where col1='2006-01-17';
select * from t11 order by col1;
col1
2006-02-06
select * from t22 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t33 order by col1;
col1
+2006-01-25
2006-02-06
-2006-05-25
select * from t44 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
select * from t55 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-insert into t11 values ('2006-11-17');
-insert into t22 values ('2006-11-17');
-insert into t33 values ('2006-11-17');
-insert into t44 values (60,'2006-11-17');
-insert into t55 values (60,'2006-11-17');
-insert into t66 values (60,'2006-11-17');
+insert into t11 values ('2006-01-17');
+insert into t22 values ('2006-01-17');
+insert into t33 values ('2006-01-17');
+insert into t44 values (60,'2006-01-17');
+insert into t55 values (60,'2006-01-17');
+insert into t66 values (60,'2006-01-17');
select * from t11 order by col1;
col1
+2006-01-17
2006-02-06
-2006-11-17
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t55 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
select * from t66 order by colint;
colint col1
-1 2006-02-03
-2 2006-01-17
+1 2006-02-06
3 2006-01-25
4 2006-02-05
-60 2006-11-17
+60 2006-01-17
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -12169,22 +11368,27 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
+2006-01-17
+2006-02-06
select * from t22 order by col1;
col1
+2006-01-17
+2006-01-25
+2006-02-06
select * from t33 order by col1;
col1
+2006-01-17
+2006-01-25
2006-02-06
-2006-05-25
-2006-11-17
select * from t44 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t55 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
select * from t66 order by colint;
colint col1
-60 2006-11-17
+60 2006-01-17
-------------------------
---- some alter table end
-------------------------
@@ -12201,7 +11405,7 @@ drop table if exists t44 ;
drop table if exists t55 ;
drop table if exists t66 ;
-------------------------------------------------------------------------
---- weekofyear(col1) in partition with coltype date
+--- weekday(col1) in partition with coltype date
-------------------------------------------------------------------------
drop table if exists t1 ;
drop table if exists t2 ;
@@ -12210,14 +11414,14 @@ drop table if exists t4 ;
drop table if exists t5 ;
drop table if exists t6 ;
-------------------------------------------------------------------------
---- Create tables with weekofyear(col1)
+--- Create tables with weekday(col1)
-------------------------------------------------------------------------
create table t1 (col1 date) engine='MYISAM'
-partition by range(weekofyear(col1))
+partition by range(weekday(col1))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t2 (col1 date) engine='MYISAM'
-partition by list(weekofyear(col1))
+partition by list(weekday(col1))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12226,15 +11430,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t3 (col1 date) engine='MYISAM'
-partition by hash(weekofyear(col1));
+partition by hash(weekday(col1));
create table t4 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
create table t5 (colint int, col1 date) engine='MYISAM'
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12244,40 +11448,40 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
create table t6 (colint int, col1 date) engine='MYISAM'
partition by range(colint)
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
-------------------------------------------------------------------------
---- Access tables with weekofyear(col1)
+--- Access tables with weekday(col1)
-------------------------------------------------------------------------
-insert into t1 values ('2006-01-03');
-insert into t1 values ('2006-03-17');
-insert into t2 values ('2006-01-03');
-insert into t2 values ('2006-03-17');
+insert into t1 values ('2006-12-03');
+insert into t1 values ('2006-11-17');
+insert into t2 values ('2006-12-03');
+insert into t2 values ('2006-11-17');
insert into t2 values ('2006-05-25');
-insert into t3 values ('2006-01-03');
-insert into t3 values ('2006-03-17');
+insert into t3 values ('2006-12-03');
+insert into t3 values ('2006-11-17');
insert into t3 values ('2006-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
-select weekofyear(col1) from t1 order by col1;
-weekofyear(col1)
-1
-11
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
+select weekday(col1) from t1 order by col1;
+weekday(col1)
+4
+6
select * from t1 order by col1;
col1
-2006-01-03
-2006-03-17
+2006-11-17
+2006-12-03
select * from t2 order by col1;
col1
-2006-01-03
-2006-03-17
2006-05-25
+2006-11-17
+2006-12-03
select * from t3 order by col1;
col1
-2006-01-03
-2006-03-17
2006-05-25
+2006-11-17
+2006-12-03
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12296,26 +11500,26 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-update t1 set col1='2006-09-06' where col1='2006-01-03';
-update t2 set col1='2006-09-06' where col1='2006-01-03';
-update t3 set col1='2006-09-06' where col1='2006-01-03';
-update t4 set col1='2006-09-06' where col1='2006-01-03';
-update t5 set col1='2006-09-06' where col1='2006-01-03';
-update t6 set col1='2006-09-06' where col1='2006-01-03';
+update t1 set col1='2006-02-06' where col1='2006-12-03';
+update t2 set col1='2006-02-06' where col1='2006-12-03';
+update t3 set col1='2006-02-06' where col1='2006-12-03';
+update t4 set col1='2006-02-06' where col1='2006-12-03';
+update t5 set col1='2006-02-06' where col1='2006-12-03';
+update t6 set col1='2006-02-06' where col1='2006-12-03';
select * from t1 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t2 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12335,7 +11539,7 @@ colint col1
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Alter tables with weekofyear(col1)
+--- Alter tables with weekday(col1)
-------------------------------------------------------------------------
drop table if exists t11 ;
drop table if exists t22 ;
@@ -12350,11 +11554,11 @@ create table t44 engine='MYISAM' as select * from t4;
create table t55 engine='MYISAM' as select * from t5;
create table t66 engine='MYISAM' as select * from t6;
alter table t11
-partition by range(weekofyear(col1))
+partition by range(weekday(col1))
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t22
-partition by list(weekofyear(col1))
+partition by list(weekday(col1))
(partition p0 values in (0,1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12363,15 +11567,15 @@ partition p4 values in (41,42,43,44,45,46,47,48,49,50),
partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t33
-partition by hash(weekofyear(col1));
+partition by hash(weekday(col1));
alter table t44
partition by range(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values less than (15),
partition p1 values less than maxvalue);
alter table t55
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 2
+subpartition by hash(weekday(col1)) subpartitions 2
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12381,22 +11585,22 @@ partition p5 values in (51,52,53,54,55,56,57,58,59,60)
);
alter table t66
partition by range(colint)
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t22 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
1 2006-02-03
@@ -12423,19 +11627,19 @@ reorganize partition p0,p1 into
(partition s1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
alter table t11
reorganize partition s1 into
(partition p0 values less than (15),
partition p1 values less than maxvalue);
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
alter table t55
partition by list(colint)
-subpartition by hash(weekofyear(col1)) subpartitions 5
+subpartition by hash(weekday(col1)) subpartitions 5
(partition p0 values in (1,2,3,4,5,6,7,8,9,10),
partition p1 values in (11,12,13,14,15,16,17,18,19,20),
partition p2 values in (21,22,23,24,25,26,27,28,29,30),
@@ -12448,7 +11652,7 @@ Table Create Table
t55 CREATE TABLE `t55` (
`colint` int(11) DEFAULT NULL,
`col1` date DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekofyear(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekday(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = MyISAM, PARTITION p1 VALUES IN (11,12,13,14,15,16,17,18,19,20) ENGINE = MyISAM, PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = MyISAM, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = MyISAM, PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
select * from t55 order by colint;
colint col1
1 2006-02-03
@@ -12466,7 +11670,7 @@ colint col1
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
@@ -12485,7 +11689,7 @@ colint col1
4 2006-02-05
alter table t66
reorganize partition s1 into
-(partition p0 values less than (weekofyear('2006-02-14')),
+(partition p0 values less than (weekday('2006-10-14')),
partition p1 values less than maxvalue);
select * from t66 order by colint;
colint col1
@@ -12494,25 +11698,25 @@ colint col1
3 2006-01-25
4 2006-02-05
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekofyear(col1)
+--- Delete rows and partitions of tables with weekday(col1)
-------------------------------------------------------------------------
-delete from t1 where col1='2006-03-17';
-delete from t2 where col1='2006-03-17';
-delete from t3 where col1='2006-03-17';
-delete from t4 where col1='2006-03-17';
-delete from t5 where col1='2006-03-17';
-delete from t6 where col1='2006-03-17';
+delete from t1 where col1='2006-11-17';
+delete from t2 where col1='2006-11-17';
+delete from t3 where col1='2006-11-17';
+delete from t4 where col1='2006-11-17';
+delete from t5 where col1='2006-11-17';
+delete from t6 where col1='2006-11-17';
select * from t1 order by col1;
col1
-2006-09-06
+2006-02-06
select * from t2 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t3 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t4 order by colint;
colint col1
1 2006-02-03
@@ -12525,47 +11729,47 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-insert into t1 values ('2006-03-17');
-insert into t2 values ('2006-03-17');
-insert into t3 values ('2006-03-17');
-insert into t4 values (60,'2006-03-17');
-insert into t5 values (60,'2006-03-17');
-insert into t6 values (60,'2006-03-17');
+insert into t1 values ('2006-11-17');
+insert into t2 values ('2006-11-17');
+insert into t3 values ('2006-11-17');
+insert into t4 values (60,'2006-11-17');
+insert into t5 values (60,'2006-11-17');
+insert into t6 values (60,'2006-11-17');
select * from t1 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t2 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t5 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t6 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
alter table t1 drop partition p0;
alter table t2 drop partition p0;
alter table t4 drop partition p0;
@@ -12573,46 +11777,42 @@ alter table t5 drop partition p0;
alter table t6 drop partition p0;
select * from t1 order by col1;
col1
-2006-09-06
select * from t2 order by col1;
col1
-2006-03-17
-2006-05-25
-2006-09-06
select * from t3 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t4 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t5 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t6 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
-------------------------------------------------------------------------
---- Delete rows and partitions of tables with weekofyear(col1)
+--- Delete rows and partitions of tables with weekday(col1)
-------------------------------------------------------------------------
-delete from t11 where col1='2006-03-17';
-delete from t22 where col1='2006-03-17';
-delete from t33 where col1='2006-03-17';
-delete from t44 where col1='2006-03-17';
-delete from t55 where col1='2006-03-17';
-delete from t66 where col1='2006-03-17';
+delete from t11 where col1='2006-11-17';
+delete from t22 where col1='2006-11-17';
+delete from t33 where col1='2006-11-17';
+delete from t44 where col1='2006-11-17';
+delete from t55 where col1='2006-11-17';
+delete from t66 where col1='2006-11-17';
select * from t11 order by col1;
col1
-2006-09-06
+2006-02-06
select * from t22 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t33 order by col1;
col1
+2006-02-06
2006-05-25
-2006-09-06
select * from t44 order by colint;
colint col1
1 2006-02-03
@@ -12625,47 +11825,47 @@ colint col1
2 2006-01-17
3 2006-01-25
4 2006-02-05
-insert into t11 values ('2006-03-17');
-insert into t22 values ('2006-03-17');
-insert into t33 values ('2006-03-17');
-insert into t44 values (60,'2006-03-17');
-insert into t55 values (60,'2006-03-17');
-insert into t66 values (60,'2006-03-17');
+insert into t11 values ('2006-11-17');
+insert into t22 values ('2006-11-17');
+insert into t33 values ('2006-11-17');
+insert into t44 values (60,'2006-11-17');
+insert into t55 values (60,'2006-11-17');
+insert into t66 values (60,'2006-11-17');
select * from t11 order by col1;
col1
-2006-03-17
-2006-09-06
+2006-02-06
+2006-11-17
select * from t22 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t55 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
select * from t66 order by colint;
colint col1
1 2006-02-03
2 2006-01-17
3 2006-01-25
4 2006-02-05
-60 2006-03-17
+60 2006-11-17
alter table t11 drop partition p0;
alter table t22 drop partition p0;
alter table t44 drop partition p0;
@@ -12673,26 +11873,22 @@ alter table t55 drop partition p0;
alter table t66 drop partition p0;
select * from t11 order by col1;
col1
-2006-09-06
select * from t22 order by col1;
col1
-2006-03-17
-2006-05-25
-2006-09-06
select * from t33 order by col1;
col1
-2006-03-17
+2006-02-06
2006-05-25
-2006-09-06
+2006-11-17
select * from t44 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t55 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
select * from t66 order by colint;
colint col1
-60 2006-03-17
+60 2006-11-17
-------------------------
---- some alter table end
-------------------------
@@ -12765,9 +11961,9 @@ insert into t2 values ('2004-05-25');
insert into t3 values ('1996-01-03');
insert into t3 values ('2000-02-17');
insert into t3 values ('2004-05-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select year(col1)-1990 from t1 order by col1;
year(col1)-1990
6
@@ -13269,9 +12465,9 @@ insert into t2 values ('2006-03-25');
insert into t3 values ('2006-01-03');
insert into t3 values ('2006-08-17');
insert into t3 values ('2006-03-25');
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t4;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t5;
-load data infile 'MYSQL_TEST_DIR/suite/parts/inc/part_supported_sql_funcs_int_date.inc' into table t6;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t4;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t5;
+load data infile '../std_data_ln/parts/part_supported_sql_funcs_int_date.inc' into table t6;
select yearweek(col1)-200600 from t1 order by col1;
yearweek(col1)-200600
1
diff --git a/mysql-test/suite/parts/r/partition_alter3_innodb.result b/mysql-test/suite/parts/r/partition_alter3_innodb.result
index 25387301cdb..7228462c61d 100644
--- a/mysql-test/suite/parts/r/partition_alter3_innodb.result
+++ b/mysql-test/suite/parts/r/partition_alter3_innodb.result
@@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -78,15 +78,15 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
ALTER TABLE t1 ADD PARTITION (PARTITION part2);
ERROR HY000: Partition management on a not partitioned table is not possible
# 1.1.2 Assign HASH partitioning
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -95,51 +95,30 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
# check read row by row success: 1
# 1.1.3 Assign other HASH partitioning to already partitioned table
# + test and switch back + test
-ALTER TABLE t1 PARTITION BY HASH(CAST(f_varchar AS SIGNED INTEGER));
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '20 '
-Warning 1292 Truncated incorrect INTEGER value: '19 '
-Warning 1292 Truncated incorrect INTEGER value: '18 '
-Warning 1292 Truncated incorrect INTEGER value: '17 '
-Warning 1292 Truncated incorrect INTEGER value: '16 '
-Warning 1292 Truncated incorrect INTEGER value: '15 '
-Warning 1292 Truncated incorrect INTEGER value: '14 '
-Warning 1292 Truncated incorrect INTEGER value: '13 '
-Warning 1292 Truncated incorrect INTEGER value: '12 '
-Warning 1292 Truncated incorrect INTEGER value: '11 '
-Warning 1292 Truncated incorrect INTEGER value: '10 '
-Warning 1292 Truncated incorrect INTEGER value: '9 '
-Warning 1292 Truncated incorrect INTEGER value: '8 '
-Warning 1292 Truncated incorrect INTEGER value: '7 '
-Warning 1292 Truncated incorrect INTEGER value: '6 '
-Warning 1292 Truncated incorrect INTEGER value: '5 '
-Warning 1292 Truncated incorrect INTEGER value: '4 '
-Warning 1292 Truncated incorrect INTEGER value: '3 '
-Warning 1292 Truncated incorrect INTEGER value: '2 '
-Warning 1292 Truncated incorrect INTEGER value: '1 '
+ALTER TABLE t1 PARTITION BY HASH(DAYOFYEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(f_varchar AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (DAYOFYEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
# check read single success: 1
# check read all success: 1
# check read row by row success: 1
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -158,9 +137,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part1 ALL NULL NULL NULL NULL 7 Using where
@@ -177,9 +156,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
@@ -193,9 +172,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB, PARTITION p7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB, PARTITION p7 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 3 Using where
@@ -221,9 +200,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p6 ALL NULL NULL NULL NULL 3 Using where
@@ -236,9 +215,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p4 ALL NULL NULL NULL NULL 4 Using where
@@ -251,9 +230,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 4 Using where
@@ -266,9 +245,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
@@ -281,9 +260,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part1 ALL NULL NULL NULL NULL 7 Using where
@@ -296,9 +275,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 10 Using where
@@ -311,9 +290,9 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = InnoDB) */
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -331,7 +310,7 @@ t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -370,7 +349,7 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -392,8 +371,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -416,8 +395,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 7 Using where
@@ -435,8 +414,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 5 Using where
@@ -454,8 +433,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB, PARTITION p7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p6 ALL NULL NULL NULL NULL 3 Using where
@@ -480,8 +459,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB, PARTITION p6 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 4 Using where
@@ -498,8 +477,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB, PARTITION p5 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 3 Using where
@@ -516,8 +495,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB, PARTITION p4 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p4 ALL NULL NULL NULL NULL 10 Using where
@@ -534,8 +513,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 5 Using where
@@ -552,8 +531,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 7 Using where
@@ -570,8 +549,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 10 Using where
@@ -588,8 +567,8 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -610,7 +589,7 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
diff --git a/mysql-test/suite/parts/r/partition_alter3_myisam.result b/mysql-test/suite/parts/r/partition_alter3_myisam.result
index f320dd69dd7..c24858aa2ca 100644
--- a/mysql-test/suite/parts/r/partition_alter3_myisam.result
+++ b/mysql-test/suite/parts/r/partition_alter3_myisam.result
@@ -64,9 +64,9 @@ t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -80,17 +80,17 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
ALTER TABLE t1 ADD PARTITION (PARTITION part2);
ERROR HY000: Partition management on a not partitioned table is not possible
# 1.1.2 Assign HASH partitioning
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -99,55 +99,34 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
# check read row by row success: 1
# 1.1.3 Assign other HASH partitioning to already partitioned table
# + test and switch back + test
-ALTER TABLE t1 PARTITION BY HASH(CAST(f_varchar AS SIGNED INTEGER));
-Warnings:
-Warning 1292 Truncated incorrect INTEGER value: '20'
-Warning 1292 Truncated incorrect INTEGER value: '19'
-Warning 1292 Truncated incorrect INTEGER value: '18'
-Warning 1292 Truncated incorrect INTEGER value: '17'
-Warning 1292 Truncated incorrect INTEGER value: '16'
-Warning 1292 Truncated incorrect INTEGER value: '15'
-Warning 1292 Truncated incorrect INTEGER value: '14'
-Warning 1292 Truncated incorrect INTEGER value: '13'
-Warning 1292 Truncated incorrect INTEGER value: '12'
-Warning 1292 Truncated incorrect INTEGER value: '11'
-Warning 1292 Truncated incorrect INTEGER value: '10'
-Warning 1292 Truncated incorrect INTEGER value: '90'
-Warning 1292 Truncated incorrect INTEGER value: '80'
-Warning 1292 Truncated incorrect INTEGER value: '70'
-Warning 1292 Truncated incorrect INTEGER value: '60'
-Warning 1292 Truncated incorrect INTEGER value: '50'
-Warning 1292 Truncated incorrect INTEGER value: '40'
-Warning 1292 Truncated incorrect INTEGER value: '30'
-Warning 1292 Truncated incorrect INTEGER value: '20'
-Warning 1292 Truncated incorrect INTEGER value: '10'
+ALTER TABLE t1 PARTITION BY HASH(DAYOFYEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(f_varchar AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (DAYOFYEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
# check read single success: 1
# check read all success: 1
# check read row by row success: 1
-ALTER TABLE t1 PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER));
+ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -166,15 +145,15 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part1 ALL NULL NULL NULL NULL 7 Using where
@@ -191,17 +170,17 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
@@ -215,25 +194,25 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM, PARTITION p7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM, PARTITION p7 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 3 Using where
@@ -259,23 +238,23 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p6 ALL NULL NULL NULL NULL 3 Using where
@@ -288,21 +267,21 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p4 ALL NULL NULL NULL NULL 4 Using where
@@ -315,19 +294,19 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 4 Using where
@@ -340,17 +319,17 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
@@ -363,15 +342,15 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part1 ALL NULL NULL NULL NULL 7 Using where
@@ -384,13 +363,13 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 10 Using where
@@ -403,11 +382,11 @@ Table Create Table
t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) (PARTITION p0 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) (PARTITION p0 ENGINE = MyISAM) */
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -425,9 +404,9 @@ t1 CREATE TABLE `t1` (
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -460,9 +439,9 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
@@ -484,10 +463,10 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -510,14 +489,14 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 7 Using where
@@ -535,16 +514,16 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 5 Using where
@@ -562,24 +541,24 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM, PARTITION p7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p6 ALL NULL NULL NULL NULL 3 Using where
@@ -604,22 +583,22 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM, PARTITION p6 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p6.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p6.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 4 Using where
@@ -636,20 +615,20 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM, PARTITION p5 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 3 Using where
@@ -666,18 +645,18 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM, PARTITION p4 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p4 ALL NULL NULL NULL NULL 10 Using where
@@ -694,16 +673,16 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 5 Using where
@@ -720,14 +699,14 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part7.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part7.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 part7 ALL NULL NULL NULL NULL 7 Using where
@@ -744,12 +723,12 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 10 Using where
@@ -766,10 +745,10 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM) */
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p0.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
+MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.par
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 20 Using where
@@ -790,9 +769,9 @@ t1 CREATE TABLE `t1` (
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYD
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.MYI
-/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm
+MYSQLTEST_VARDIR/master-data/test/t1.MYD
+MYSQLTEST_VARDIR/master-data/test/t1.MYI
+MYSQLTEST_VARDIR/master-data/test/t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20 Using where
diff --git a/mysql-test/suite/parts/r/partition_basic_innodb.result b/mysql-test/suite/parts/r/partition_basic_innodb.result
index f9ae10caf18..dc875980678 100644
--- a/mysql-test/suite/parts/r/partition_basic_innodb.result
+++ b/mysql-test/suite/parts/r/partition_basic_innodb.result
@@ -59,15 +59,6 @@ SET @@session.sql_mode= '';
#------------------------------------------------------------------------
# 1.1 The partitioning function contains one column.
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -513,6 +504,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -956,6 +949,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -1399,52 +1394,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (10 + 5)
-
-,
-PARTITION parte VALUES LESS THAN (20)
-
-,
-PARTITION partf VALUES LESS THAN (2147483646)
-
-)';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (10 + 5)
-
-,
-PARTITION parte VALUES LESS THAN (20)
-
-,
-PARTITION partf VALUES LESS THAN (2147483646)
-
-);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -1888,27 +1837,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (2147483646)
-
-);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -2354,31 +2282,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-
-
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-
-
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-
-
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-
-
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -2822,47 +2725,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
-
-
- (SUBPARTITION sp11
-
- ,
- SUBPARTITION sp12
-
- ),
- PARTITION part2 VALUES IN (1)
-
-
- (SUBPARTITION sp21
-
- ,
- SUBPARTITION sp22
-
- ),
- PARTITION part3 VALUES IN (2)
-
-
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
-
-
- (SUBPARTITION sp41
-
- ,
- SUBPARTITION sp42
-
- ));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3308,25 +3170,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
-
- ,
- PARTITION part2 VALUES IN (1)
-
- ,
- PARTITION part3 VALUES IN (NULL)
-
- );
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3773,25 +3616,6 @@ DROP TABLE t1;
unified filelist
--- not determined ---
# 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2
-(PARTITION p1
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p2
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3804,7 +3628,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -4237,40 +4061,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 5
-(PARTITION p1
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p2
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p3
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p4
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p5
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -4283,7 +4073,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -4716,6 +4506,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -4726,7 +4518,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -5159,76 +4951,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -5241,7 +4963,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -5672,35 +5394,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -5713,7 +5406,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -6146,39 +5839,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -6191,7 +5851,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -6622,67 +6282,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -6695,7 +6294,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -7128,31 +6727,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -7165,7 +6739,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -7599,15 +7173,6 @@ DROP TABLE t1;
unified filelist
--- not determined ---
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -8053,6 +7618,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -8496,6 +8063,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -8506,7 +8075,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -8939,52 +8508,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5),
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'',
-PARTITION partf VALUES LESS THAN (2147483646)
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5),
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partf VALUES LESS THAN (2147483646)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -8997,7 +8520,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -9428,27 +8951,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partc VALUES LESS THAN (10),
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -9461,7 +8963,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -9894,31 +9396,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -9931,7 +9408,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = InnoDB, SUBPARTITION subpart42 ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -10362,51 +9839,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
- SUBPARTITION sp12
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
- SUBPARTITION sp22
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -10419,7 +9851,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -14476,15 +13908,6 @@ DROP TABLE t1;
#------------------------------------------------------------------------
# 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -14967,6 +14390,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -15447,6 +14872,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -15459,7 +14886,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -15927,76 +15354,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -16011,7 +15368,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -16477,35 +15834,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -16520,7 +15848,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -16988,39 +16316,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -17035,7 +16330,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -17501,67 +16796,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -17576,7 +16810,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -18044,31 +17278,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -18083,7 +17292,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int2`,`f_int1`),
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -18552,15 +17761,6 @@ DROP TABLE t1;
unified filelist
--- not determined ---
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -19043,6 +18243,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -19523,6 +18725,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -19535,7 +18739,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -20003,76 +19207,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -20087,7 +19221,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -20553,35 +19687,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -20596,7 +19701,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -21064,39 +20169,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -21111,7 +20183,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -21577,67 +20649,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -21652,7 +20663,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -22120,31 +21131,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -22159,7 +21145,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`f_int1`,`f_int2`),
UNIQUE KEY `uidx1` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -22628,15 +21614,6 @@ DROP TABLE t1;
unified filelist
--- not determined ---
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -23135,6 +22112,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -23631,6 +22610,8 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -23643,7 +22624,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -24127,76 +23108,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -24211,7 +23122,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -24693,35 +23604,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -24736,7 +23618,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -25220,39 +24102,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -25267,7 +24116,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -25749,67 +24598,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -25824,7 +24612,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB)) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB)) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
@@ -26308,31 +25096,6 @@ DROP TABLE t1;
# We found:
unified filelist
--- not determined ---
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -26347,7 +25110,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = InnoDB) */
# check prerequisites-1 success: 1
# check COUNT(*) success: 1
diff --git a/mysql-test/suite/parts/r/partition_basic_myisam.result b/mysql-test/suite/parts/r/partition_basic_myisam.result
index 3a4a1c0d571..471eb4973f6 100644
--- a/mysql-test/suite/parts/r/partition_basic_myisam.result
+++ b/mysql-test/suite/parts/r/partition_basic_myisam.result
@@ -59,15 +59,6 @@ SET @@session.sql_mode= '';
#------------------------------------------------------------------------
# 1.1 The partitioning function contains one column.
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -517,6 +508,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -970,6 +963,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -1429,52 +1424,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (10 + 5)
-
-,
-PARTITION parte VALUES LESS THAN (20)
-
-,
-PARTITION partf VALUES LESS THAN (2147483646)
-
-)';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (10 + 5)
-
-,
-PARTITION parte VALUES LESS THAN (20)
-
-,
-PARTITION partf VALUES LESS THAN (2147483646)
-
-);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -1930,27 +1879,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-
-,
-PARTITION partb VALUES LESS THAN (5)
-
-,
-PARTITION partc VALUES LESS THAN (10)
-
-,
-PARTITION partd VALUES LESS THAN (2147483646)
-
-);
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -2412,31 +2340,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-
-
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-
-
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-
-
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-
-
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -2896,47 +2799,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
-
-
- (SUBPARTITION sp11
-
- ,
- SUBPARTITION sp12
-
- ),
- PARTITION part2 VALUES IN (1)
-
-
- (SUBPARTITION sp21
-
- ,
- SUBPARTITION sp22
-
- ),
- PARTITION part3 VALUES IN (2)
-
-
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
-
-
- (SUBPARTITION sp41
-
- ,
- SUBPARTITION sp42
-
- ));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3398,25 +3260,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
-
- ,
- PARTITION part2 VALUES IN (1)
-
- ,
- PARTITION part3 VALUES IN (NULL)
-
- );
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3881,25 +3724,6 @@ TRUNCATE t1;
# End usability test (include/partition_check.inc)
DROP TABLE t1;
# 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2
-(PARTITION p1
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p2
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -3912,7 +3736,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
@@ -4343,68 +4167,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 5
-(PARTITION p1
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p2
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p3
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p4
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION p5
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -4417,7 +4207,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
@@ -4860,34 +4650,36 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p5.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p5.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p5.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p5.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#p5.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p4.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#p5.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p4.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#p5.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#p5.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p5.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -4898,7 +4690,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
@@ -5353,104 +5145,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_N.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_N.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_N.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_N.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part_N.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_3.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part_N.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_3.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part_N.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part_N.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_N.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -5463,7 +5185,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
@@ -5908,63 +5630,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partf.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partf.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partf.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partf.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partf.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parte.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partf.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parte.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partf.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partf.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partf.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -5977,7 +5670,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
@@ -6432,67 +6125,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#partd#SP#partdsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#parta#SP#partasp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partb#SP#partbsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partc#SP#partcsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#partd#SP#partdsp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#parta#SP#partasp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partb#SP#partbsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partc#SP#partcsp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#partd#SP#partdsp1.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp1.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -6505,7 +6165,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
@@ -6958,95 +6618,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart42.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart42.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#subpart42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#subpart12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#subpart22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#subpart32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#subpart42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#subpart12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#subpart22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#subpart32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#subpart42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#subpart42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart42.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -7059,7 +6658,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
@@ -7514,59 +7113,34 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp42.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp42.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part4#SP#sp42.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp11.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#sp12.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp21.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#sp22.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp31.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#sp32.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp41.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part4#SP#sp42.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp11.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#sp12.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp21.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#sp22.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp31.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#sp32.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp41.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part4#SP#sp42.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part4#SP#sp42.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp42.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -7579,7 +7153,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
@@ -8038,44 +7612,35 @@ OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
# check layout success: 0
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
# check layout success: 0
TRUNCATE t1;
# check TRUNCATE success: 1
state new
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par
state old
-Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
-File list /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1#P#part3#SP#part3sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.frm /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/t1.par /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part1#SP#part1sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part2#SP#part2sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp0.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp1.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/t1#P#part3#SP#part3sp2.MYD /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part1#SP#part1sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part2#SP#part2sp2.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp0.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp1.MYI /data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
+Table definition SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f_int1` int(11) DEFAULT NULL, `f_int2` int(11) DEFAULT NULL, `f_char1` char(20) DEFAULT NULL, `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
+File list MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#part3sp2.MYI MYSQLTEST_VARDIR/master-data/test/t1.frm MYSQLTEST_VARDIR/master-data/test/t1.par MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp2.MYI
# check layout success: 0
# End usability test (include/partition_check.inc)
DROP TABLE t1;
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -8525,6 +8090,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -8978,6 +8545,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -8988,7 +8557,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
@@ -9437,52 +9006,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5),
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'',
-PARTITION partf VALUES LESS THAN (2147483646)
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5),
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partf VALUES LESS THAN (2147483646)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -9495,7 +9018,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
@@ -9938,27 +9461,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
-PARTITION partc VALUES LESS THAN (10),
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -9971,7 +9473,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
@@ -10420,31 +9922,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -10457,7 +9934,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
@@ -10904,51 +10381,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
- SUBPARTITION sp12
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data',
- SUBPARTITION sp22
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -10961,7 +10393,7 @@ t1 CREATE TABLE `t1` (
`f_char1` char(20) DEFAULT NULL,
`f_char2` char(20) DEFAULT NULL,
`f_charbig` varchar(1000) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
@@ -15190,15 +14622,6 @@ DROP TABLE t1;
#------------------------------------------------------------------------
# 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY HASH(f_int1) PARTITIONS 2;
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -15701,6 +15124,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -16207,6 +15632,8 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
+INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
+SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
create_command
SHOW CREATE TABLE t1;
@@ -16219,7 +15646,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD
@@ -16719,76 +16146,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-SET @aux = 'PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data''
-INDEX DIRECTORY =
- ''/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'')';
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1)
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (10 + 5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION parte VALUES LESS THAN (20)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partf VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -16803,7 +16160,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD
@@ -17297,35 +16654,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
-(PARTITION parta VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partb VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partc VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
-PARTITION partd VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -17340,7 +16668,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD
@@ -17840,39 +17168,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
-(PARTITION part1 VALUES LESS THAN (0)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart11, SUBPARTITION subpart12),
-PARTITION part2 VALUES LESS THAN (5)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart21, SUBPARTITION subpart22),
-PARTITION part3 VALUES LESS THAN (10)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart31, SUBPARTITION subpart32),
-PARTITION part4 VALUES LESS THAN (2147483646)
-DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
-INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
-(SUBPARTITION subpart41, SUBPARTITION subpart42));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -17887,7 +17182,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
@@ -18385,67 +17680,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp11
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp12
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp21
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp22
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'),
- PARTITION part3 VALUES IN (2)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp31,
- SUBPARTITION sp32),
- PARTITION part4 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'
- (SUBPARTITION sp41
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- SUBPARTITION sp42
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index'));
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -18460,7 +17694,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM)) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD
@@ -18960,31 +18194,6 @@ TRUNCATE t1;
# check layout success: 1
# End usability test (include/partition_check.inc)
DROP TABLE t1;
-CREATE TABLE t1 (
-f_int1 INTEGER,
-f_int2 INTEGER,
-f_char1 CHAR(20),
-f_char2 CHAR(20),
-f_charbig VARCHAR(1000)
-, UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1)
-)
-PARTITION BY LIST(ABS(MOD(f_int1,2)))
-SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
-(PARTITION part1 VALUES IN (0)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part2 VALUES IN (1)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index',
- PARTITION part3 VALUES IN (NULL)
- DATA DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data'
- INDEX DIRECTORY =
- '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index');
INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig)
SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template;
# Start usability test (include/partition_check.inc)
@@ -18999,7 +18208,7 @@ t1 CREATE TABLE `t1` (
`f_charbig` varchar(1000) DEFAULT NULL,
UNIQUE KEY `uidx1` (`f_int1`,`f_int2`),
UNIQUE KEY `uidx2` (`f_int2`,`f_int1`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data/' INDEX DIRECTORY='/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/data' INDEX DIRECTORY = '/data0/mysql/mysql-5.1-build/mysql-test/var/master-data/test/index' ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */
unified filelist
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
diff --git a/mysql-test/suite/parts/r/partition_datetime_innodb.result b/mysql-test/suite/parts/r/partition_datetime_innodb.result
index f8cf390ebbb..4ced059ba9e 100644
--- a/mysql-test/suite/parts/r/partition_datetime_innodb.result
+++ b/mysql-test/suite/parts/r/partition_datetime_innodb.result
@@ -186,7 +186,7 @@ a
1971-01-01 00:00:59
drop table t2;
create table t3 (a timestamp not null, primary key(a)) engine='InnoDB'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -198,7 +198,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts;
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
@@ -233,7 +233,7 @@ a
1970-12-01 00:00:00
drop table t3;
create table t4 (a timestamp not null, primary key(a)) engine='InnoDB'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (0,1,2,3),
partition quarter2 values in (4,5,6),
@@ -245,7 +245,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (0,1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (0,1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts;
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
@@ -517,7 +517,7 @@ a
1970-03-28
drop table t2;
create table t3 (a date not null, primary key(a)) engine='InnoDB'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -529,7 +529,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts;
insert into t3 values (adddate(19700101,interval 12-1 month));
insert into t3 values (adddate(19700101,interval 11-1 month));
@@ -562,7 +562,7 @@ a
1970-12-01
drop table t3;
create table t4 (a date not null, primary key(a)) engine='InnoDB'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
@@ -574,7 +574,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts;
insert into t4 values (adddate(19700101,interval 12-1 month));
insert into t4 values (adddate(19700101,interval 11-1 month));
@@ -794,7 +794,7 @@ a
00:01:59
drop table t2;
create table t3 (a time not null, primary key(a)) engine='InnoDB'
-partition by range (cast(second(a) as unsigned)) subpartition by key (a)
+partition by range (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (16),
partition quarter2 values less than (31),
@@ -806,7 +806,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(second(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (61) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (second(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (61) ENGINE = InnoDB) */
59 inserts;
insert into t3 values (100000+59);
insert into t3 values (100000+58);
@@ -933,7 +933,7 @@ a
10:00:59
drop table t3;
create table t4 (a time not null, primary key(a)) engine='InnoDB'
-partition by list (cast(second(a) as unsigned)) subpartition by key (a)
+partition by list (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),
partition quarter2 values in (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30),
@@ -945,7 +945,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(second(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (second(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
59 inserts;
insert into t4 values (100000+59);
insert into t4 values (100000+58);
@@ -1259,7 +1259,7 @@ a
1970-01-01 00:00:59
drop table t2;
create table t3 (a datetime not null, primary key(a)) engine='InnoDB'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -1271,7 +1271,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts;
insert into t3 values (adddate(19700101000000,interval 12-1 month));
insert into t3 values (adddate(19700101000000,interval 11-1 month));
@@ -1304,7 +1304,7 @@ a
1970-12-01 00:00:00
drop table t3;
create table t4 (a datetime not null, primary key(a)) engine='InnoDB'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
@@ -1316,7 +1316,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts;
insert into t4 values (adddate(19700101000000,interval 12-1 month));
insert into t4 values (adddate(19700101000000,interval 11-1 month));
diff --git a/mysql-test/suite/parts/r/partition_datetime_myisam.result b/mysql-test/suite/parts/r/partition_datetime_myisam.result
index 2c0091322e1..1ef281f2766 100644
--- a/mysql-test/suite/parts/r/partition_datetime_myisam.result
+++ b/mysql-test/suite/parts/r/partition_datetime_myisam.result
@@ -186,7 +186,7 @@ a
1971-01-01 00:00:59
drop table t2;
create table t3 (a timestamp not null, primary key(a)) engine='MyISAM'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -198,7 +198,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts;
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
@@ -233,7 +233,7 @@ a
1970-12-01 00:00:00
drop table t3;
create table t4 (a timestamp not null, primary key(a)) engine='MyISAM'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (0,1,2,3),
partition quarter2 values in (4,5,6),
@@ -245,7 +245,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (0,1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (0,1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts;
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
@@ -517,7 +517,7 @@ a
1970-03-28
drop table t2;
create table t3 (a date not null, primary key(a)) engine='MyISAM'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -529,7 +529,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts;
insert into t3 values (adddate(19700101,interval 12-1 month));
insert into t3 values (adddate(19700101,interval 11-1 month));
@@ -562,7 +562,7 @@ a
1970-12-01
drop table t3;
create table t4 (a date not null, primary key(a)) engine='MyISAM'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
@@ -574,7 +574,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` date NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts;
insert into t4 values (adddate(19700101,interval 12-1 month));
insert into t4 values (adddate(19700101,interval 11-1 month));
@@ -794,7 +794,7 @@ a
00:01:59
drop table t2;
create table t3 (a time not null, primary key(a)) engine='MyISAM'
-partition by range (cast(second(a) as unsigned)) subpartition by key (a)
+partition by range (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (16),
partition quarter2 values less than (31),
@@ -806,7 +806,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(second(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (61) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (second(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (61) ENGINE = MyISAM) */
59 inserts;
insert into t3 values (100000+59);
insert into t3 values (100000+58);
@@ -933,7 +933,7 @@ a
10:00:59
drop table t3;
create table t4 (a time not null, primary key(a)) engine='MyISAM'
-partition by list (cast(second(a) as unsigned)) subpartition by key (a)
+partition by list (second(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),
partition quarter2 values in (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30),
@@ -945,7 +945,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` time NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(second(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (second(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
59 inserts;
insert into t4 values (100000+59);
insert into t4 values (100000+58);
@@ -1259,7 +1259,7 @@ a
1970-01-01 00:00:59
drop table t2;
create table t3 (a datetime not null, primary key(a)) engine='MyISAM'
-partition by range (cast(month(a) as unsigned)) subpartition by key (a)
+partition by range (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values less than (4),
partition quarter2 values less than (7),
@@ -1271,7 +1271,7 @@ Table Create Table
t3 CREATE TABLE `t3` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts;
insert into t3 values (adddate(19700101000000,interval 12-1 month));
insert into t3 values (adddate(19700101000000,interval 11-1 month));
@@ -1304,7 +1304,7 @@ a
1970-12-01 00:00:00
drop table t3;
create table t4 (a datetime not null, primary key(a)) engine='MyISAM'
-partition by list (cast(month(a) as unsigned)) subpartition by key (a)
+partition by list (month(a)) subpartition by key (a)
subpartitions 3 (
partition quarter1 values in (1,2,3),
partition quarter2 values in (4,5,6),
@@ -1316,7 +1316,7 @@ Table Create Table
t4 CREATE TABLE `t4` (
`a` datetime NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(month(a) as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts;
insert into t4 values (adddate(19700101000000,interval 12-1 month));
insert into t4 values (adddate(19700101000000,interval 11-1 month));
diff --git a/mysql-test/suite/parts/r/partition_decimal_innodb.result b/mysql-test/suite/parts/r/partition_decimal_innodb.result
index 584ce91724e..c0a165cf189 100644
--- a/mysql-test/suite/parts/r/partition_decimal_innodb.result
+++ b/mysql-test/suite/parts/r/partition_decimal_innodb.result
@@ -87,95 +87,3 @@ select count(*) from t2;
count(*)
3072
drop table t2;
-create table t3 (a decimal(18,9) not null, primary key(a)) engine='InnoDB'
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
-partition pa2 values less than (2),
-partition pa4 values less than (4),
-partition pa6 values less than (6),
-partition pa8 values less than (8),
-partition pa10 values less than (10)
-);
-show create table t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `a` decimal(18,9) NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES LESS THAN (2) ENGINE = InnoDB, PARTITION pa4 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION pa6 VALUES LESS THAN (6) ENGINE = InnoDB, PARTITION pa8 VALUES LESS THAN (8) ENGINE = InnoDB, PARTITION pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */
-9*3 inserts;
-insert into t3 values (9);
-insert into t3 values (9+0.333333333);
-insert into t3 values (9+0.755555555);
-insert into t3 values (8);
-insert into t3 values (8+0.333333333);
-insert into t3 values (8+0.755555555);
-insert into t3 values (7);
-insert into t3 values (7+0.333333333);
-insert into t3 values (7+0.755555555);
-insert into t3 values (6);
-insert into t3 values (6+0.333333333);
-insert into t3 values (6+0.755555555);
-insert into t3 values (5);
-insert into t3 values (5+0.333333333);
-insert into t3 values (5+0.755555555);
-insert into t3 values (4);
-insert into t3 values (4+0.333333333);
-insert into t3 values (4+0.755555555);
-insert into t3 values (3);
-insert into t3 values (3+0.333333333);
-insert into t3 values (3+0.755555555);
-insert into t3 values (2);
-insert into t3 values (2+0.333333333);
-insert into t3 values (2+0.755555555);
-insert into t3 values (1);
-insert into t3 values (1+0.333333333);
-insert into t3 values (1+0.755555555);
-select count(*) from t3;
-count(*)
-27
-drop table t3;
-create table t4 (a decimal(18,9) not null, primary key(a)) engine='InnoDB'
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
-partition pa2 values in (1,2),
-partition pa4 values in (3,4),
-partition pa6 values in (5,6),
-partition pa8 values in (7,8),
-partition pa10 values in (9,10)
-);
-show create table t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `a` decimal(18,9) NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES IN (1,2) ENGINE = InnoDB, PARTITION pa4 VALUES IN (3,4) ENGINE = InnoDB, PARTITION pa6 VALUES IN (5,6) ENGINE = InnoDB, PARTITION pa8 VALUES IN (7,8) ENGINE = InnoDB, PARTITION pa10 VALUES IN (9,10) ENGINE = InnoDB) */
-9*3 inserts;
-insert into t4 values (9);
-insert into t4 values (9+0.333333333);
-insert into t4 values (9+0.755555555);
-insert into t4 values (8);
-insert into t4 values (8+0.333333333);
-insert into t4 values (8+0.755555555);
-insert into t4 values (7);
-insert into t4 values (7+0.333333333);
-insert into t4 values (7+0.755555555);
-insert into t4 values (6);
-insert into t4 values (6+0.333333333);
-insert into t4 values (6+0.755555555);
-insert into t4 values (5);
-insert into t4 values (5+0.333333333);
-insert into t4 values (5+0.755555555);
-insert into t4 values (4);
-insert into t4 values (4+0.333333333);
-insert into t4 values (4+0.755555555);
-insert into t4 values (3);
-insert into t4 values (3+0.333333333);
-insert into t4 values (3+0.755555555);
-insert into t4 values (2);
-insert into t4 values (2+0.333333333);
-insert into t4 values (2+0.755555555);
-insert into t4 values (1);
-insert into t4 values (1+0.333333333);
-insert into t4 values (1+0.755555555);
-select count(*) from t4;
-count(*)
-27
-drop table t4;
diff --git a/mysql-test/suite/parts/r/partition_decimal_myisam.result b/mysql-test/suite/parts/r/partition_decimal_myisam.result
index 008c249165d..464ac4ddaf5 100644
--- a/mysql-test/suite/parts/r/partition_decimal_myisam.result
+++ b/mysql-test/suite/parts/r/partition_decimal_myisam.result
@@ -87,95 +87,3 @@ select count(*) from t2;
count(*)
196605
drop table t2;
-create table t3 (a decimal(18,9) not null, primary key(a)) engine='MYISAM'
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
-partition pa2 values less than (2),
-partition pa4 values less than (4),
-partition pa6 values less than (6),
-partition pa8 values less than (8),
-partition pa10 values less than (10)
-);
-show create table t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `a` decimal(18,9) NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES LESS THAN (2) ENGINE = MyISAM, PARTITION pa4 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION pa6 VALUES LESS THAN (6) ENGINE = MyISAM, PARTITION pa8 VALUES LESS THAN (8) ENGINE = MyISAM, PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t3 values (9);
-insert into t3 values (9+0.333333333);
-insert into t3 values (9+0.755555555);
-insert into t3 values (8);
-insert into t3 values (8+0.333333333);
-insert into t3 values (8+0.755555555);
-insert into t3 values (7);
-insert into t3 values (7+0.333333333);
-insert into t3 values (7+0.755555555);
-insert into t3 values (6);
-insert into t3 values (6+0.333333333);
-insert into t3 values (6+0.755555555);
-insert into t3 values (5);
-insert into t3 values (5+0.333333333);
-insert into t3 values (5+0.755555555);
-insert into t3 values (4);
-insert into t3 values (4+0.333333333);
-insert into t3 values (4+0.755555555);
-insert into t3 values (3);
-insert into t3 values (3+0.333333333);
-insert into t3 values (3+0.755555555);
-insert into t3 values (2);
-insert into t3 values (2+0.333333333);
-insert into t3 values (2+0.755555555);
-insert into t3 values (1);
-insert into t3 values (1+0.333333333);
-insert into t3 values (1+0.755555555);
-select count(*) from t3;
-count(*)
-27
-drop table t3;
-create table t4 (a decimal(18,9) not null, primary key(a)) engine='MYISAM'
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 2 (
-partition pa2 values in (1,2),
-partition pa4 values in (3,4),
-partition pa6 values in (5,6),
-partition pa8 values in (7,8),
-partition pa10 values in (9,10)
-);
-show create table t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `a` decimal(18,9) NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES IN (1,2) ENGINE = MyISAM, PARTITION pa4 VALUES IN (3,4) ENGINE = MyISAM, PARTITION pa6 VALUES IN (5,6) ENGINE = MyISAM, PARTITION pa8 VALUES IN (7,8) ENGINE = MyISAM, PARTITION pa10 VALUES IN (9,10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t4 values (9);
-insert into t4 values (9+0.333333333);
-insert into t4 values (9+0.755555555);
-insert into t4 values (8);
-insert into t4 values (8+0.333333333);
-insert into t4 values (8+0.755555555);
-insert into t4 values (7);
-insert into t4 values (7+0.333333333);
-insert into t4 values (7+0.755555555);
-insert into t4 values (6);
-insert into t4 values (6+0.333333333);
-insert into t4 values (6+0.755555555);
-insert into t4 values (5);
-insert into t4 values (5+0.333333333);
-insert into t4 values (5+0.755555555);
-insert into t4 values (4);
-insert into t4 values (4+0.333333333);
-insert into t4 values (4+0.755555555);
-insert into t4 values (3);
-insert into t4 values (3+0.333333333);
-insert into t4 values (3+0.755555555);
-insert into t4 values (2);
-insert into t4 values (2+0.333333333);
-insert into t4 values (2+0.755555555);
-insert into t4 values (1);
-insert into t4 values (1+0.333333333);
-insert into t4 values (1+0.755555555);
-select count(*) from t4;
-count(*)
-27
-drop table t4;
diff --git a/mysql-test/suite/parts/r/partition_float_myisam.result b/mysql-test/suite/parts/r/partition_float_myisam.result
index 08a1c20d224..aba62b8ba70 100644
--- a/mysql-test/suite/parts/r/partition_float_myisam.result
+++ b/mysql-test/suite/parts/r/partition_float_myisam.result
@@ -89,152 +89,6 @@ select count(*) from t2;
count(*)
49152
drop table t2;
-create table t3 (a float not null, primary key(a)) engine='MYISAM'
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
-partition pa1 values less than (3),
-partition pa3 values less than (6),
-partition pa10 values less than (10)
-);
-show create table t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `a` float NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = MyISAM, PARTITION pa3 VALUES LESS THAN (6) ENGINE = MyISAM, PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t3 values (9);
-insert into t3 values (9+0.33);
-insert into t3 values (9+0.75);
-insert into t3 values (8);
-insert into t3 values (8+0.33);
-insert into t3 values (8+0.75);
-insert into t3 values (7);
-insert into t3 values (7+0.33);
-insert into t3 values (7+0.75);
-insert into t3 values (6);
-insert into t3 values (6+0.33);
-insert into t3 values (6+0.75);
-insert into t3 values (5);
-insert into t3 values (5+0.33);
-insert into t3 values (5+0.75);
-insert into t3 values (4);
-insert into t3 values (4+0.33);
-insert into t3 values (4+0.75);
-insert into t3 values (3);
-insert into t3 values (3+0.33);
-insert into t3 values (3+0.75);
-insert into t3 values (2);
-insert into t3 values (2+0.33);
-insert into t3 values (2+0.75);
-insert into t3 values (1);
-insert into t3 values (1+0.33);
-insert into t3 values (1+0.75);
-select count(*) from t3;
-count(*)
-27
-select * from t3;
-a
-1
-1.33
-1.75
-2
-2.33
-2.75
-3
-3.33
-3.75
-4
-4.33
-4.75
-5
-5.33
-5.75
-6
-6.33
-6.75
-7
-7.33
-7.75
-8
-8.33
-8.75
-9
-9.33
-9.75
-drop table t3;
-create table t4 (a float not null, primary key(a)) engine='MYISAM'
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
-partition pa1 values in (1,2,3),
-partition pa3 values in (4,5,6),
-partition pa10 values in (7,8,9,10)
-);
-show create table t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `a` float NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION pa3 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION pa10 VALUES IN (7,8,9,10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t4 values (9);
-insert into t4 values (9+0.33);
-insert into t4 values (9+0.75);
-insert into t4 values (8);
-insert into t4 values (8+0.33);
-insert into t4 values (8+0.75);
-insert into t4 values (7);
-insert into t4 values (7+0.33);
-insert into t4 values (7+0.75);
-insert into t4 values (6);
-insert into t4 values (6+0.33);
-insert into t4 values (6+0.75);
-insert into t4 values (5);
-insert into t4 values (5+0.33);
-insert into t4 values (5+0.75);
-insert into t4 values (4);
-insert into t4 values (4+0.33);
-insert into t4 values (4+0.75);
-insert into t4 values (3);
-insert into t4 values (3+0.33);
-insert into t4 values (3+0.75);
-insert into t4 values (2);
-insert into t4 values (2+0.33);
-insert into t4 values (2+0.75);
-insert into t4 values (1);
-insert into t4 values (1+0.33);
-insert into t4 values (1+0.75);
-select count(*) from t4;
-count(*)
-27
-select * from t4;
-a
-1
-1.33
-1.75
-2
-2.33
-2.75
-3
-3.33
-3.75
-4
-4.33
-4.75
-5
-5.33
-5.75
-6
-6.33
-6.75
-7
-7.33
-7.75
-8
-8.33
-8.75
-9
-9.33
-9.75
-drop table t4;
create table t1 (a double not null, primary key(a)) engine='MYISAM'
partition by key (a) (
partition pa1 DATA DIRECTORY =
@@ -318,149 +172,3 @@ select count(*) from t2;
count(*)
49152
drop table t2;
-create table t3 (a double not null, primary key(a)) engine='MYISAM'
-partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
-partition pa1 values less than (3),
-partition pa3 values less than (6),
-partition pa10 values less than (10)
-);
-show create table t3;
-Table Create Table
-t3 CREATE TABLE `t3` (
- `a` double NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = MyISAM, PARTITION pa3 VALUES LESS THAN (6) ENGINE = MyISAM, PARTITION pa10 VALUES LESS THAN (10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t3 values (9);
-insert into t3 values (9+0.33);
-insert into t3 values (9+0.75);
-insert into t3 values (8);
-insert into t3 values (8+0.33);
-insert into t3 values (8+0.75);
-insert into t3 values (7);
-insert into t3 values (7+0.33);
-insert into t3 values (7+0.75);
-insert into t3 values (6);
-insert into t3 values (6+0.33);
-insert into t3 values (6+0.75);
-insert into t3 values (5);
-insert into t3 values (5+0.33);
-insert into t3 values (5+0.75);
-insert into t3 values (4);
-insert into t3 values (4+0.33);
-insert into t3 values (4+0.75);
-insert into t3 values (3);
-insert into t3 values (3+0.33);
-insert into t3 values (3+0.75);
-insert into t3 values (2);
-insert into t3 values (2+0.33);
-insert into t3 values (2+0.75);
-insert into t3 values (1);
-insert into t3 values (1+0.33);
-insert into t3 values (1+0.75);
-select count(*) from t3;
-count(*)
-27
-select * from t3;
-a
-1
-1.33
-1.75
-2
-2.33
-2.75
-3
-3.33
-3.75
-4
-4.33
-4.75
-5
-5.33
-5.75
-6
-6.33
-6.75
-7
-7.33
-7.75
-8
-8.33
-8.75
-9
-9.33
-9.75
-drop table t3;
-create table t4 (a double not null, primary key(a)) engine='MYISAM'
-partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 (
-partition pa1 values in (1,2,3),
-partition pa3 values in (4,5,6),
-partition pa10 values in (7,8,9,10)
-);
-show create table t4;
-Table Create Table
-t4 CREATE TABLE `t4` (
- `a` double NOT NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION pa3 VALUES IN (4,5,6) ENGINE = MyISAM, PARTITION pa10 VALUES IN (7,8,9,10) ENGINE = MyISAM) */
-9*3 inserts;
-insert into t4 values (9);
-insert into t4 values (9+0.33);
-insert into t4 values (9+0.75);
-insert into t4 values (8);
-insert into t4 values (8+0.33);
-insert into t4 values (8+0.75);
-insert into t4 values (7);
-insert into t4 values (7+0.33);
-insert into t4 values (7+0.75);
-insert into t4 values (6);
-insert into t4 values (6+0.33);
-insert into t4 values (6+0.75);
-insert into t4 values (5);
-insert into t4 values (5+0.33);
-insert into t4 values (5+0.75);
-insert into t4 values (4);
-insert into t4 values (4+0.33);
-insert into t4 values (4+0.75);
-insert into t4 values (3);
-insert into t4 values (3+0.33);
-insert into t4 values (3+0.75);
-insert into t4 values (2);
-insert into t4 values (2+0.33);
-insert into t4 values (2+0.75);
-insert into t4 values (1);
-insert into t4 values (1+0.33);
-insert into t4 values (1+0.75);
-select count(*) from t4;
-count(*)
-27
-select * from t4;
-a
-1
-1.33
-1.75
-2
-2.33
-2.75
-3
-3.33
-3.75
-4
-4.33
-4.75
-5
-5.33
-5.75
-6
-6.33
-6.75
-7
-7.33
-7.75
-8
-8.33
-8.75
-9
-9.33
-9.75
-drop table t4;
diff --git a/mysql-test/suite/parts/r/partition_syntax_innodb.result b/mysql-test/suite/parts/r/partition_syntax_innodb.result
index d64bfdde239..c6fb2d38e4c 100644
--- a/mysql-test/suite/parts/r/partition_syntax_innodb.result
+++ b/mysql-test/suite/parts/r/partition_syntax_innodb.result
@@ -620,7 +620,7 @@ PARTITION BY RANGE(f_int1)
PARTITION part2 VALUES LESS THAN (1000));
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
PARTITION part2 VALUES LESS THAN (1000))' at line 9
-# 3.5.1.2 VALUE LESS THAN (CAST(NULL AS SIGNED INTEGER)) is not allowed
+# 3.5.1.2 VALUE LESS THAN (NULL) is not allowed
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -629,7 +629,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY RANGE(f_int1)
-( PARTITION part1 VALUES LESS THAN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES LESS THAN (NULL),
PARTITION part2 VALUES LESS THAN (1000));
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
PARTITION part2 VALUES LESS THAN (1000))' at line 9
@@ -647,7 +647,7 @@ PARTITION BY LIST(MOD(f_int1,2))
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
DROP TABLE t1;
-# 3.5.2.2 VALUE IN (CAST(NULL AS SIGNED INTEGER))
+# 3.5.2.2 VALUE IN (NULL)
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -656,7 +656,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part3 VALUES IN (1));
create_command
SHOW CREATE TABLE t1;
@@ -679,7 +679,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
create_command
diff --git a/mysql-test/suite/parts/r/partition_syntax_myisam.result b/mysql-test/suite/parts/r/partition_syntax_myisam.result
index 34f771ba51d..49a7b155a58 100644
--- a/mysql-test/suite/parts/r/partition_syntax_myisam.result
+++ b/mysql-test/suite/parts/r/partition_syntax_myisam.result
@@ -620,7 +620,7 @@ PARTITION BY RANGE(f_int1)
PARTITION part2 VALUES LESS THAN (1000));
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
PARTITION part2 VALUES LESS THAN (1000))' at line 9
-# 3.5.1.2 VALUE LESS THAN (CAST(NULL AS SIGNED INTEGER)) is not allowed
+# 3.5.1.2 VALUE LESS THAN (NULL) is not allowed
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -629,7 +629,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY RANGE(f_int1)
-( PARTITION part1 VALUES LESS THAN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES LESS THAN (NULL),
PARTITION part2 VALUES LESS THAN (1000));
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
PARTITION part2 VALUES LESS THAN (1000))' at line 9
@@ -647,7 +647,7 @@ PARTITION BY LIST(MOD(f_int1,2))
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
DROP TABLE t1;
-# 3.5.2.2 VALUE IN (CAST(NULL AS SIGNED INTEGER))
+# 3.5.2.2 VALUE IN (NULL)
CREATE TABLE t1 (
f_int1 INTEGER,
f_int2 INTEGER,
@@ -656,7 +656,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part3 VALUES IN (1));
create_command
SHOW CREATE TABLE t1;
@@ -687,7 +687,7 @@ f_char2 CHAR(20),
f_charbig VARCHAR(1000)
)
PARTITION BY LIST(MOD(f_int1,2))
-( PARTITION part1 VALUES IN (CAST(NULL AS SIGNED INTEGER)),
+( PARTITION part1 VALUES IN (NULL),
PARTITION part2 VALUES IN (0),
PARTITION part3 VALUES IN (1));
create_command
diff --git a/mysql-test/suite/parts/t/disabled.def b/mysql-test/suite/parts/t/disabled.def
index 36bf08e9851..1b70519b72c 100644
--- a/mysql-test/suite/parts/t/disabled.def
+++ b/mysql-test/suite/parts/t/disabled.def
@@ -6,6 +6,8 @@ ndb_partition_range : cannot create t1
partition_bit_ndb : cannot create t1
partition_int_ndb : cannot create t1
partition_syntax_ndb : cannot create t1
+partition_value_myisam : Bug#30581 partition_value tests use disallowed CAST() function
+partition_value_innodb : Bug#30581 partition_value tests use disallowed CAST() function
partition_value_ndb : cannot create t1
partition_basic_ndb : cannot create t1
partition_alter1_ndb : timeout. Needs too much time.
@@ -13,3 +15,6 @@ partition_alter2_ndb : cannot create t1
partition_char_innodb : crash. Bug? More investigations
partition_sessions : needs system_3_init.inc
partition_engine_ndb : cannot create t1
+part_supported_sql_func_ndb : cannot create t1
+rpl_ndb_dd_partitions : cannot create t1
+partition_float_innodb : Bug#30583 Partition on DOUBLE key + INNODB + count(*) == crash
diff --git a/mysql-test/suite/parts/t/partition_char_innodb.test b/mysql-test/suite/parts/t/partition_char_innodb.test
index d0389517927..27295084de4 100644
--- a/mysql-test/suite/parts/t/partition_char_innodb.test
+++ b/mysql-test/suite/parts/t/partition_char_innodb.test
@@ -36,6 +36,7 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
##### max rows to be inserted
let $maxrows=65535;
diff --git a/mysql-test/suite/parts/t/partition_datetime_innodb.test b/mysql-test/suite/parts/t/partition_datetime_innodb.test
index fe19e2803c5..eba0bc3e10b 100644
--- a/mysql-test/suite/parts/t/partition_datetime_innodb.test
+++ b/mysql-test/suite/parts/t/partition_datetime_innodb.test
@@ -36,6 +36,7 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
##### max rows to be inserted
let $maxrows=1024;
diff --git a/mysql-test/suite/parts/t/partition_decimal_innodb.test b/mysql-test/suite/parts/t/partition_decimal_innodb.test
index ec5948097c8..22e759ec5d9 100644
--- a/mysql-test/suite/parts/t/partition_decimal_innodb.test
+++ b/mysql-test/suite/parts/t/partition_decimal_innodb.test
@@ -36,6 +36,8 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
+
##### number of rows to be inserted
let $maxrows=1024;
diff --git a/mysql-test/suite/parts/t/partition_float_innodb.test b/mysql-test/suite/parts/t/partition_float_innodb.test
index b36dc0668a6..3395d1812d2 100644
--- a/mysql-test/suite/parts/t/partition_float_innodb.test
+++ b/mysql-test/suite/parts/t/partition_float_innodb.test
@@ -36,6 +36,8 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
+
##### Number of row to be inserted.
let $maxrows=1024;
diff --git a/mysql-test/suite/parts/t/partition_int_innodb.test b/mysql-test/suite/parts/t/partition_int_innodb.test
index fda7398565c..dc14b369654 100644
--- a/mysql-test/suite/parts/t/partition_int_innodb.test
+++ b/mysql-test/suite/parts/t/partition_int_innodb.test
@@ -36,6 +36,7 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
##### max rows to be inserted
let $maxrows=1024;
diff --git a/mysql-test/suite/parts/t/partition_special_innodb.test b/mysql-test/suite/parts/t/partition_special_innodb.test
index 5df518a3952..f552d64f4e4 100644
--- a/mysql-test/suite/parts/t/partition_special_innodb.test
+++ b/mysql-test/suite/parts/t/partition_special_innodb.test
@@ -36,6 +36,7 @@ let $debug= 0;
##### Storage engine to be tested
let $engine= 'InnoDB';
+--source include/have_innodb.inc
#------------------------------------------------------------------------------#
# Execute the tests to be applied to all storage engines
diff --git a/mysql-test/suite/parts/t/rpl_partition.test b/mysql-test/suite/parts/t/rpl_partition.test
index ffd6d17ec6f..f1002ded81f 100644
--- a/mysql-test/suite/parts/t/rpl_partition.test
+++ b/mysql-test/suite/parts/t/rpl_partition.test
@@ -1,3 +1,4 @@
+--source include/have_partition.inc
--source include/have_innodb.inc
--source include/master-slave.inc
diff --git a/mysql-test/suite/rpl/r/rpl_binlog_grant.result b/mysql-test/suite/rpl/r/rpl_binlog_grant.result
new file mode 100644
index 00000000000..43a21913cf6
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_binlog_grant.result
@@ -0,0 +1,50 @@
+drop database if exists d1;
+create database d1;
+use d1;
+create table t (s1 int) engine=innodb;
+set @@autocommit=0;
+start transaction;
+insert into t values (1);
+grant select on t to x@y;
+rollback;
+show grants for x@y;
+Grants for x@y
+GRANT USAGE ON *.* TO 'x'@'y'
+GRANT SELECT ON `d1`.`t` TO 'x'@'y'
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 106 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 106 Query 1 193 drop database if exists d1
+master-bin.000001 193 Query 1 272 create database d1
+master-bin.000001 272 Query 1 370 use `d1`; create table t (s1 int) engine=innodb
+master-bin.000001 370 Query 1 436 use `d1`; BEGIN
+master-bin.000001 436 Query 1 521 use `d1`; insert into t values (1)
+master-bin.000001 521 Xid 1 548 COMMIT /* XID */
+master-bin.000001 548 Query 1 633 use `d1`; grant select on t to x@y
+start transaction;
+insert into t values (2);
+revoke select on t from x@y;
+commit;
+select * from t;
+s1
+1
+2
+show grants for x@y;
+Grants for x@y
+GRANT USAGE ON *.* TO 'x'@'y'
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 106 Server ver: VERSION, Binlog ver: 4
+master-bin.000001 106 Query 1 193 drop database if exists d1
+master-bin.000001 193 Query 1 272 create database d1
+master-bin.000001 272 Query 1 370 use `d1`; create table t (s1 int) engine=innodb
+master-bin.000001 370 Query 1 436 use `d1`; BEGIN
+master-bin.000001 436 Query 1 521 use `d1`; insert into t values (1)
+master-bin.000001 521 Xid 1 548 COMMIT /* XID */
+master-bin.000001 548 Query 1 633 use `d1`; grant select on t to x@y
+master-bin.000001 633 Query 1 699 use `d1`; BEGIN
+master-bin.000001 699 Query 1 784 use `d1`; insert into t values (2)
+master-bin.000001 784 Xid 1 811 COMMIT /* XID */
+master-bin.000001 811 Query 1 899 use `d1`; revoke select on t from x@y
+drop user x@y;
+drop database d1;
diff --git a/mysql-test/suite/rpl/r/rpl_ps.result b/mysql-test/suite/rpl/r/rpl_ps.result
index 73c36af4862..faba43ae934 100644
--- a/mysql-test/suite/rpl/r/rpl_ps.result
+++ b/mysql-test/suite/rpl/r/rpl_ps.result
@@ -26,5 +26,55 @@ from-master-2-'',
from-var-from-master-3
drop table t1;
stop slave;
+
+########################################################################
+#
+# BUG#25843: Changing default database between PREPARE and EXECUTE of
+# statement breaks binlog.
+#
+########################################################################
+
+# Connection: slave
+
+
+START SLAVE;
+
+# Connection: master
+
+
+CREATE DATABASE mysqltest1;
+CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32));
+
+PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)';
+
+EXECUTE stmt_d_1;
+
+use mysqltest1;
+
+EXECUTE stmt_d_1;
+
+
+# Connection: slave
+
+
+SELECT * FROM t1;
+db_name db_col_name
+test latin1_swedish_ci
+test latin1_swedish_ci
+
+# Connection: master
+
+
+DROP DATABASE mysqltest1;
+
+use test;
+
+
+# Connection: slave
+
+
+STOP SLAVE;
+
+########################################################################
reset master;
reset slave;
diff --git a/mysql-test/suite/rpl/r/rpl_udf.result b/mysql-test/suite/rpl/r/rpl_udf.result
index 1fa9cb3ffc2..49f8256ce96 100644
--- a/mysql-test/suite/rpl/r/rpl_udf.result
+++ b/mysql-test/suite/rpl/r/rpl_udf.result
@@ -14,13 +14,13 @@ CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
affected rows: 0
CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
ERROR HY000: Can't find symbol 'myfunc_nonexist' in library
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
myfunc_double 1 UDF_LIB function
myfunc_int 2 UDF_LIB function
affected rows: 2
"Running on the slave"
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
myfunc_double 1 UDF_LIB function
myfunc_int 2 UDF_LIB function
@@ -64,11 +64,11 @@ DROP FUNCTION myfunc_double;
affected rows: 0
DROP FUNCTION myfunc_int;
affected rows: 0
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
affected rows: 0
"Running on the slave"
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
affected rows: 0
"Running on the master"
@@ -80,13 +80,13 @@ CREATE FUNCTION myfuncsql_int(i INT) RETURNS INTEGER DETERMINISTIC RETURN i;
affected rows: 0
CREATE FUNCTION myfuncsql_double(d DOUBLE) RETURNS INTEGER DETERMINISTIC RETURN d * 2.00;
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00
test myfuncsql_int FUNCTION i INT RETURN i
affected rows: 2
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00
test myfuncsql_int FUNCTION i INT RETURN i
@@ -122,13 +122,13 @@ ALTER FUNCTION myfuncsql_int COMMENT "This was altered.";
affected rows: 0
ALTER FUNCTION myfuncsql_double COMMENT "This was altered.";
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00 This was altered.
test myfuncsql_int FUNCTION i INT RETURN i This was altered.
affected rows: 2
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00 This was altered.
test myfuncsql_int FUNCTION i INT RETURN i This was altered.
@@ -146,11 +146,11 @@ DROP FUNCTION myfuncsql_double;
affected rows: 0
DROP FUNCTION myfuncsql_int;
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
affected rows: 0
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
affected rows: 0
"Running on the master"
@@ -166,16 +166,16 @@ CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
affected rows: 0
CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
ERROR HY000: Can't find symbol 'myfunc_nonexist' in library
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
-myfunc_int 2 UDF_LIB function
myfunc_double 1 UDF_LIB function
+myfunc_int 2 UDF_LIB function
affected rows: 2
"Running on the slave"
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
-myfunc_int 2 UDF_LIB function
myfunc_double 1 UDF_LIB function
+myfunc_int 2 UDF_LIB function
affected rows: 2
"Running on the master"
CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=MyISAM;
@@ -224,11 +224,11 @@ DROP FUNCTION myfunc_double;
affected rows: 0
DROP FUNCTION myfunc_int;
affected rows: 0
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
affected rows: 0
"Running on the slave"
-SELECT * FROM mysql.func;
+SELECT * FROM mysql.func ORDER BY name;
name ret dl type
affected rows: 0
"Running on the master"
@@ -240,13 +240,13 @@ CREATE FUNCTION myfuncsql_int(i INT) RETURNS INTEGER DETERMINISTIC RETURN i;
affected rows: 0
CREATE FUNCTION myfuncsql_double(d DOUBLE) RETURNS INTEGER DETERMINISTIC RETURN d * 2.00;
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00
test myfuncsql_int FUNCTION i INT RETURN i
affected rows: 2
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00
test myfuncsql_int FUNCTION i INT RETURN i
@@ -282,13 +282,13 @@ ALTER FUNCTION myfuncsql_int COMMENT "This was altered.";
affected rows: 0
ALTER FUNCTION myfuncsql_double COMMENT "This was altered.";
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00 This was altered.
test myfuncsql_int FUNCTION i INT RETURN i This was altered.
affected rows: 2
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
test myfuncsql_double FUNCTION d DOUBLE RETURN d * 2.00 This was altered.
test myfuncsql_int FUNCTION i INT RETURN i This was altered.
@@ -306,11 +306,11 @@ DROP FUNCTION myfuncsql_double;
affected rows: 0
DROP FUNCTION myfuncsql_int;
affected rows: 0
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
affected rows: 0
"Running on the slave"
-SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%';
+SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name;
db name type param_list body comment
affected rows: 0
"Running on the master"
diff --git a/mysql-test/suite/rpl/t/rpl_binlog_grant.test b/mysql-test/suite/rpl/t/rpl_binlog_grant.test
new file mode 100644
index 00000000000..42af33c2e05
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_binlog_grant.test
@@ -0,0 +1,43 @@
+-- source include/have_innodb.inc
+-- source include/not_embedded.inc
+-- source include/have_binlog_format_mixed_or_statement.inc
+
+let $VERSION=`select version()`;
+
+# Bug #21975: grant/revoke statements in transaction
+# used to disappear from binlog upon rallback.
+# Now GRANT/REVOKE do implicitly commit
+# transaction
+
+--disable_warnings
+drop database if exists d1;
+--enable_warnings
+create database d1;
+use d1;
+create table t (s1 int) engine=innodb;
+set @@autocommit=0;
+start transaction;
+insert into t values (1);
+grant select on t to x@y;
+#
+# There is no active transaction here
+#
+rollback;
+show grants for x@y;
+--replace_result $VERSION VERSION
+--replace_regex /\/\* xid=.* \*\//\/* XID *\//
+show binlog events;
+start transaction;
+insert into t values (2);
+revoke select on t from x@y;
+#
+# There is no active transaction here
+#
+commit;
+select * from t;
+show grants for x@y;
+--replace_result $VERSION VERSION
+--replace_regex /\/\* xid=.* \*\//\/* XID *\//
+show binlog events;
+drop user x@y;
+drop database d1;
diff --git a/mysql-test/suite/rpl/t/rpl_ps.test b/mysql-test/suite/rpl/t/rpl_ps.test
index b8792722192..27f1ac3348d 100644
--- a/mysql-test/suite/rpl/t/rpl_ps.test
+++ b/mysql-test/suite/rpl/t/rpl_ps.test
@@ -46,6 +46,101 @@ stop slave;
# End of 4.1 tests
+#
+# Bug #25843 Changing default database between PREPARE and EXECUTE of statement
+# breaks binlog.
+#
+# There were actually two problems discovered by this bug:
+#
+# 1. Default (current) database is not fixed at the creation time.
+# That leads to wrong output of DATABASE() function.
+#
+# 2. Database attributes (@@collation_database) are not fixed at the creation
+# time. That leads to wrong resultset.
+#
+# Binlog breakage and Query Cache wrong output happened because of the first
+# problem.
+#
+
+--echo
+--echo ########################################################################
+--echo #
+--echo # BUG#25843: Changing default database between PREPARE and EXECUTE of
+--echo # statement breaks binlog.
+--echo #
+--echo ########################################################################
+
+###############################################################################
+
+--echo
+--echo # Connection: slave
+--echo
+--connection slave
+
+--echo
+START SLAVE;
+
+--echo
+--echo # Connection: master
+--echo
+--connection master
+
+--echo
+CREATE DATABASE mysqltest1;
+CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32));
+
+--echo
+PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)';
+
+--echo
+EXECUTE stmt_d_1;
+
+--echo
+use mysqltest1;
+
+--echo
+EXECUTE stmt_d_1;
+
+--echo
+--save_master_pos
+
+--echo
+--echo # Connection: slave
+--echo
+--connection slave
+--sync_with_master
+
+--echo
+SELECT * FROM t1;
+
+--echo
+--echo # Connection: master
+--echo
+--connection master
+
+--echo
+DROP DATABASE mysqltest1;
+
+--echo
+use test;
+
+--echo
+--save_master_pos
+
+--echo
+--echo # Connection: slave
+--echo
+--connection slave
+--sync_with_master
+
+--echo
+STOP SLAVE;
+
+--echo
+--echo ########################################################################
+
+###############################################################################
+
reset master;
reset slave;
disconnect master;
diff --git a/mysql-test/suite/rpl/t/rpl_ssl.test b/mysql-test/suite/rpl/t/rpl_ssl.test
index 4bc07ee0622..c1b7bc2097b 100644
--- a/mysql-test/suite/rpl/t/rpl_ssl.test
+++ b/mysql-test/suite/rpl/t/rpl_ssl.test
@@ -41,28 +41,43 @@ select * from t1;
# Do the same thing a number of times
disable_query_log;
+disable_result_log;
let $i= 100;
while ($i)
{
start slave;
connection master;
insert into t1 values (NULL);
+ select * from t1; # Some variance
connection slave;
+ select * from t1; # Some variance
stop slave;
dec $i;
}
start slave;
enable_query_log;
+enable_result_log;
connection master;
# INSERT one more record to make sure
# the sync has something to do
insert into t1 values (NULL);
+let $master_count= `select count(*) from t1`;
+
sync_slave_with_master;
--source include/wait_for_slave_to_start.inc
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
query_vertical show slave status;
+let $slave_count= `select count(*) from t1`;
+
+if (`select $slave_count != $master_count`)
+{
+ echo master and slave differed in number of rows;
+ echo master: $master_count;
+ echo slave: $slave_count;
+}
+
connection master;
drop user replssl@localhost;
drop table t1;
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
new file mode 100644
index 00000000000..cf4c67f063b
--- /dev/null
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
@@ -0,0 +1,855 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+SET storage_engine=innodb;
+--- Doing pre test cleanup ---
+DROP TABLE IF EXISTS t1;
+--- Start test 1 Basic testing ---
+--- Create Table Section ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE,PRIMARY KEY(id));
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+--- Show table on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly --
+ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 1 Basic testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 2 partition RANGE testing --
+--- Do setup --
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY RANGE (YEAR(t))
+(PARTITION p0 VALUES LESS THAN (1901),
+PARTITION p1 VALUES LESS THAN (1946),
+PARTITION p2 VALUES LESS THAN (1966),
+PARTITION p3 VALUES LESS THAN (1986),
+PARTITION p4 VALUES LESS THAN (2005),
+PARTITION p5 VALUES LESS THAN MAXVALUE);
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (1946) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (1966) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (1986) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN (2005) ENGINE = InnoDB, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
+--- Show table on slave --
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (1946) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (1966) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (1986) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN (2005) ENGINE = InnoDB, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 2 partition RANGE testing ---
+--- Do Cleanup ---
+DROP TABLE IF EXISTS t1;
+--- Start test 3 partition LIST testing ---
+--- Do setup ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY LIST(id)
+(PARTITION p0 VALUES IN (2, 4),
+PARTITION p1 VALUES IN (42, 142));
+--- Test 3 Alter to add partition ---
+ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = InnoDB, PARTITION p1 VALUES IN (42,142) ENGINE = InnoDB, PARTITION p2 VALUES IN (412) ENGINE = InnoDB) */
+--- Show table on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = InnoDB, PARTITION p1 VALUES IN (42,142) ENGINE = InnoDB, PARTITION p2 VALUES IN (412) ENGINE = InnoDB) */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 3 partition LIST testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 4 partition HASH testing ---
+--- Do setup ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY HASH( YEAR(t) )
+PARTITIONS 4;
+--- show that tables have been created correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 4 partition HASH testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 5 partition by key testing ---
+--- Create Table Section ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE,PRIMARY KEY(id))
+PARTITION BY KEY()
+PARTITIONS 4;
+--- Show that tables on master are ndbcluster tables ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Show that tables on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Make sure that our tables on slave are still right type ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 5 key partition testing ---
+--- Do Cleanup ---
+DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
new file mode 100644
index 00000000000..35fc778a693
--- /dev/null
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
@@ -0,0 +1,855 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+SET storage_engine=myisam;
+--- Doing pre test cleanup ---
+DROP TABLE IF EXISTS t1;
+--- Start test 1 Basic testing ---
+--- Create Table Section ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE,PRIMARY KEY(id));
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+--- Show table on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly --
+ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 1 Basic testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 2 partition RANGE testing --
+--- Do setup --
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY RANGE (YEAR(t))
+(PARTITION p0 VALUES LESS THAN (1901),
+PARTITION p1 VALUES LESS THAN (1946),
+PARTITION p2 VALUES LESS THAN (1966),
+PARTITION p3 VALUES LESS THAN (1986),
+PARTITION p4 VALUES LESS THAN (2005),
+PARTITION p5 VALUES LESS THAN MAXVALUE);
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (1946) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (1966) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (1986) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN (2005) ENGINE = MyISAM, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+--- Show table on slave --
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (1946) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (1966) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (1986) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN (2005) ENGINE = MyISAM, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 2 partition RANGE testing ---
+--- Do Cleanup ---
+DROP TABLE IF EXISTS t1;
+--- Start test 3 partition LIST testing ---
+--- Do setup ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY LIST(id)
+(PARTITION p0 VALUES IN (2, 4),
+PARTITION p1 VALUES IN (42, 142));
+--- Test 3 Alter to add partition ---
+ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
+--- Show table on master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = MyISAM, PARTITION p1 VALUES IN (42,142) ENGINE = MyISAM, PARTITION p2 VALUES IN (412) ENGINE = MyISAM) */
+--- Show table on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = MyISAM, PARTITION p1 VALUES IN (42,142) ENGINE = MyISAM, PARTITION p2 VALUES IN (412) ENGINE = MyISAM) */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster) */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 3 partition LIST testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 4 partition HASH testing ---
+--- Do setup ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE)
+PARTITION BY HASH( YEAR(t) )
+PARTITIONS 4;
+--- show that tables have been created correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 ADD PRIMARY KEY(t,id);
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date NOT NULL DEFAULT '0000-00-00',
+ PRIMARY KEY (`t`,`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 4 partition HASH testing ---
+--- Do Cleanup --
+DROP TABLE IF EXISTS t1;
+--- Start test 5 partition by key testing ---
+--- Create Table Section ---
+CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
+bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
+f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
+y YEAR, t DATE,PRIMARY KEY(id))
+PARTITION BY KEY()
+PARTITIONS 4;
+--- Show that tables on master are ndbcluster tables ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Show that tables on slave ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned DEFAULT NULL,
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Make sure that our tables on slave are still right type ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` varchar(255) DEFAULT NULL,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- Check that simple Alter statements are replicated correctly ---
+ALTER TABLE t1 MODIFY vc TEXT;
+--- Show the new improved table on the master ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Make sure that our tables on slave are still same engine ---
+--- and that the alter statements replicated correctly ---
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` mediumint(9) NOT NULL,
+ `b1` bit(8) DEFAULT NULL,
+ `vc` text,
+ `bc` char(255) DEFAULT NULL,
+ `d` decimal(10,4) DEFAULT '0.0000',
+ `f` float DEFAULT '0',
+ `total` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `y` year(4) DEFAULT NULL,
+ `t` date DEFAULT NULL,
+ PRIMARY KEY (`id`,`total`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY () PARTITIONS 4 */
+--- Perform basic operation on master ---
+--- and ensure replicated correctly ---
+"--- Insert into t1 --" as "";
+--- Select from t1 on master ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Select from t1 on slave ---
+select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
+id hex(b1) vc bc d f total y t
+2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
+4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
+42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
+142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
+412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
+--- Update t1 on master --
+UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
+--- Check the update on master ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Check Update on slave ---
+SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
+id hex(b1) vc bc d f total y t
+412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
+--- Remove a record from t1 on master ---
+DELETE FROM t1 WHERE id = 42;
+--- Show current count on master for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+--- Show current count on slave for t1 ---
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+4
+DELETE FROM t1;
+--- End test 5 key partition testing ---
+--- Do Cleanup ---
+DROP TABLE IF EXISTS t1;
diff --git a/mysql-test/suite/rpl_ndb/t/disabled.def b/mysql-test/suite/rpl_ndb/t/disabled.def
index 5b102a915ef..f372d44cb90 100644
--- a/mysql-test/suite/rpl_ndb/t/disabled.def
+++ b/mysql-test/suite/rpl_ndb/t/disabled.def
@@ -13,7 +13,7 @@
rpl_ndb_2innodb : BUG#19227 2006-04-20 pekka pk delete apparently not replicated
rpl_ndb_2myisam : BUG#19227 Seems to pass currently
-rpl_ndb_2other : BUG#29549 2007-09-04 rafal test fails on big-endian architectures
+rpl_ndb_2other : BUG#21842 2007-08-30 tsmith test has never worked on bigendian (sol10-sparc-a, powermacg5
rpl_ndb_dd_partitions : BUG#19259 2006-04-21 rpl_ndb_dd_partitions fails on s/AMD
rpl_ndb_innodb2ndb : Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
rpl_ndb_myisam2ndb : Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt
index 7f9eb96dff1..b63ef44e8fc 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt
@@ -1 +1 @@
---default-storage-engine=ndbcluster
+--new --default-storage-engine=ndbcluster
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
index 8f67802c055..92374c26742 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test
@@ -7,8 +7,9 @@
# to be able to use the same code for all these different
# test and to have control over the tests.
##############################################################
--- source include/have_ndb.inc
-- source include/have_innodb.inc
+-- source include/have_ndb.inc
+-- source include/have_binlog_format_mixed_or_row.inc
-- source include/ndb_master-slave.inc
SET storage_engine=innodb;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt
deleted file mode 100644
index 83ed8522e72..00000000000
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---binlog-format=row
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt
index 7f9eb96dff1..b63ef44e8fc 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt
@@ -1 +1 @@
---default-storage-engine=ndbcluster
+--new --default-storage-engine=ndbcluster
diff --git a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
index 2ed151b7a87..a9e56d17139 100644
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test
@@ -7,6 +7,8 @@
# to be able to use the same code for all these different
# test and to have control over the tests.
##############################################################
+-- source include/have_ndb.inc
+-- source include/have_binlog_format_mixed_or_row.inc
-- source include/ndb_master-slave.inc
SET storage_engine=myisam;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
diff --git a/mysql-test/t/backup.test b/mysql-test/t/backup.test
index 0b4b9b84094..cdbf7b69615 100644
--- a/mysql-test/t/backup.test
+++ b/mysql-test/t/backup.test
@@ -57,7 +57,16 @@ unlock tables;
connection con1;
reap;
drop table t5;
---system rm $MYSQLTEST_VARDIR/tmp/t?.*
+remove_file $MYSQLTEST_VARDIR/tmp/t1.MYD;
+remove_file $MYSQLTEST_VARDIR/tmp/t2.MYD;
+remove_file $MYSQLTEST_VARDIR/tmp/t3.MYD;
+remove_file $MYSQLTEST_VARDIR/tmp/t4.MYD;
+remove_file $MYSQLTEST_VARDIR/tmp/t5.MYD;
+remove_file $MYSQLTEST_VARDIR/tmp/t1.frm;
+remove_file $MYSQLTEST_VARDIR/tmp/t2.frm;
+remove_file $MYSQLTEST_VARDIR/tmp/t3.frm;
+remove_file $MYSQLTEST_VARDIR/tmp/t4.frm;
+remove_file $MYSQLTEST_VARDIR/tmp/t5.frm;
# End of 4.1 tests
# End of 5.0 tests
diff --git a/mysql-test/t/bootstrap.test b/mysql-test/t/bootstrap.test
index 1c2952e93d0..203ba9b2914 100644
--- a/mysql-test/t/bootstrap.test
+++ b/mysql-test/t/bootstrap.test
@@ -9,12 +9,13 @@ drop table if exists t1;
#
# Check that --bootstrap reads from stdin
#
---write_file $MYSQLTEST_VARDIR/tmp/bootstrap.sql
+--write_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql
use test;
CREATE TABLE t1(a int);
EOF
---exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
+--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
drop table t1;
+remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
#
# Check that --bootstrap of file with SQL error returns error
@@ -28,6 +29,7 @@ EOF
# Table t1 should not exists
--error 1051
drop table t1;
+remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql;
#
# Bootstrap with a query larger than 2*thd->net.max_packet
@@ -40,6 +42,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1;
--enable_query_log
--error 1
--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/long_query.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/long_query.sql;
set global max_allowed_packet=@my_max_allowed_packet;
drop table t1;
diff --git a/mysql-test/t/comments.test b/mysql-test/t/comments.test
index 8ae6ba5779e..3a18a8bd483 100644
--- a/mysql-test/t/comments.test
+++ b/mysql-test/t/comments.test
@@ -34,3 +34,34 @@ select 1/*!999992*/;
select 1 + /*!00000 2 */ + 3 /*!99999 noise*/ + 4;
+#
+# Bug#28779 (mysql_query() allows execution of statements with unbalanced
+# comments)
+#
+
+--disable_warnings
+drop table if exists table_28779;
+--enable_warnings
+
+create table table_28779 (a int);
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';*";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;*";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';*";
+
+drop table table_28779;
+
diff --git a/mysql-test/t/csv.test b/mysql-test/t/csv.test
index 4aff4b27976..5c877557dfc 100644
--- a/mysql-test/t/csv.test
+++ b/mysql-test/t/csv.test
@@ -1424,6 +1424,7 @@ DROP TABLE test_repair_table2;
# Corrupt csv file and see if we can repair it
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
+--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
"1"
"4"
@@ -1476,6 +1477,7 @@ CREATE TABLE test_repair_table5 (
) ENGINE = CSV;
# Corrupt a table -- put a file with wrong # of columns
+--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table5.CSV
"1","101","IBM"
EOF
@@ -1629,6 +1631,7 @@ insert into bug22080_1 values(2,'string');
insert into bug22080_1 values(3,'string');
# Create first corrupt file as described in bug report
+--remove_file $MYSQLTEST_VARDIR/master-data/test/bug22080_2.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_2.CSV
1,"string"
2","string"
@@ -1636,6 +1639,7 @@ insert into bug22080_1 values(3,'string');
EOF
# Create second corrupt file as described in bug report
+--remove_file $MYSQLTEST_VARDIR/master-data/test/bug22080_3.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/bug22080_3.CSV
1,"string"
"2",string"
@@ -1696,6 +1700,7 @@ check table t1;
drop table t1;
create table t1(a int, b int) engine=csv;
+--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
--write_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
1, 1E-2
-2E2, .9
diff --git a/mysql-test/t/ctype_ascii.test b/mysql-test/t/ctype_ascii.test
new file mode 100644
index 00000000000..2a5118c7d34
--- /dev/null
+++ b/mysql-test/t/ctype_ascii.test
@@ -0,0 +1,13 @@
+#
+# Bug #27562: ascii.xml invalid?
+#
+set names ascii;
+select 'e'='`';
+select 'y'='~';
+create table t1 (a char(1) character set ascii);
+insert into t1 (a) values (' '), ('a'), ('b'), ('c'), ('d'), ('e'), ('f'), ('g'), ('h'), ('i'), ('j'), ('k'), ('l'), ('m'), ('n'), ('o'), ('p'), ('q'), ('r'), ('s'), ('t'), ('u'), ('v'), ('w'), ('x'), ('y'), ('z'), ('A'), ('B'), ('C'), ('D'), ('E'), ('F'), ('G'), ('H'), ('I'), ('J'), ('K'), ('L'), ('M'), ('N'), ('O'), ('P'), ('Q'), ('R'), ('S'), ('T'), ('U'), ('V'), ('W'), ('X'), ('Y'), ('Z'), ('!'), ('@'), ('#'), ('$'), ('%'), ('^'), ('&'), ('*'), ('('), (')'), ('_'), ('+'), ('`'), ('~'), ('1'), ('2'), ('3'), ('4'), ('5'), ('6'), ('7'), ('8'), ('9'), ('0'), ('['), (']'), ('\\'), ('|'), ('}'), ('{'), ('"'), (':'), (''''), (';'), ('/'), ('.'), (','), ('?'), ('>'), ('<'), ('\n'), ('\t'), ('\a'), ('\f'), ('\v');
+select t1a.a, t1b.a from t1 as t1a, t1 as t1b where t1a.a=t1b.a order by binary t1a.a, binary t1b.a;
+drop table t1;
+
+#
+--echo End of 5.0 tests.
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index c5aaa1ee0f5..a39de913659 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -11,17 +11,7 @@
##############################################################################
user_limits : Bug#23921 random failure of user_limits.test
-im_options : Bug#20294 2006-07-24 stewart Instance manager test im_options fails randomly
-im_daemon_life_cycle : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
-im_cmd_line : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
-im_utils : Bug#20294 2007-05-30 alik Instance manager tests fail randomly
-im_instance_conf : Bug#20294 2007-05-30 alik Instance manager tests fail randomly
-im_life_cycle : BUG#27851 Instance manager dies on ASSERT in ~Thread_registry() or from not being able to close a mysqld instance.
-im_instance_conf : BUG#28743 Instance manager generates warnings in test suite
-im_utils : BUG#28743 Instance manager generates warnings in test suite
-
concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences
ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Double Whopper
-mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage
federated_transactions : Bug#29523 Transactions do not work
diff --git a/mysql-test/t/events.test b/mysql-test/t/events.test
index d7232705b81..d1ca5f1b609 100644
--- a/mysql-test/t/events.test
+++ b/mysql-test/t/events.test
@@ -432,8 +432,11 @@ create event закачка on schedule every 10 hour do select get_lock("test_l
--echo "Should return 1 row"
select definer, name, db from mysql.event;
---echo "Should be only 1 process"
-select /*1*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+--echo "Should be only 0 process"
+select /*1*/ user, host, db, command, state, info
+ from information_schema.processlist
+ where (user='event_scheduler')
+ order by info;
select release_lock("test_lock1");
drop event закачка;
--echo "Should have 0 events"
@@ -447,14 +450,28 @@ set global event_scheduler=on;
select get_lock("test_lock2", 20);
--echo "Create an event which tries to acquire a mutex. The event locks on the mutex"
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
---echo "Let some time pass to the event starts"
---sleep 1
+
--echo "Should have only 2 processes: the scheduler and the locked event"
-select /*2*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;--echo "Release the mutex, the event worker should finish."
+let $wait_condition= select count(*) = 2 from information_schema.processlist
+ where ( (state like 'User lock%' AND info like 'select get_lock%')
+ OR (command='Daemon' AND user='event_scheduler'));
+--source include/wait_condition.inc
+
+select /*2*/ user, host, db, command, state, info
+ from information_schema.processlist
+ where (info like "select get_lock%" OR user='event_scheduler')
+ order by info;
--echo "Release the mutex, the event worker should finish."
select release_lock("test_lock2");
drop event закачка;
+# Wait for release_lock("test_lock2") to complete,
+# to avoid polluting the next test information_schema.processlist
+let $wait_condition= select count(*) = 0 from information_schema.processlist
+ where (state like 'User lock%' AND info like 'select get_lock%');
+--source include/wait_condition.inc
+
+
##
## 1. get a lock
## 2. create an event
@@ -466,13 +483,31 @@ drop event закачка;
set global event_scheduler=1;
select get_lock("test_lock2_1", 20);
create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
---sleep 1
---echo "Should have only 3 processes: the scheduler, our conn and the locked event"
-select /*3*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+
+--echo "Should have only 2 processes: the scheduler and the locked event"
+let $wait_condition= select count(*) = 2 from information_schema.processlist
+ where ( (state like 'User lock%' AND info like 'select get_lock%')
+ OR (command='Daemon' AND user='event_scheduler' AND
+ state = 'Waiting for next activation'));
+--source include/wait_condition.inc
+
+select /*3*/ user, host, db, command, state, info
+ from information_schema.processlist
+ where (info like "select get_lock%" OR user='event_scheduler')
+ order by info;
+
set global event_scheduler=off;
---sleep 0.8
+
+let $wait_condition= select count(*) =1 from information_schema.processlist
+ where (info like "select get_lock%" OR user='event_scheduler');
+--source include/wait_condition.inc
+
--echo "Should have only our process now:"
-select /*4*/ user, host, db, command, state, info from information_schema.processlist where (command!='Daemon' || user='event_scheduler') and (info is null or info not like '%processlist%') order by info;
+select /*4*/ user, host, db, command, state, info
+ from information_schema.processlist
+ where (info like "select get_lock%" OR user='event_scheduler')
+ order by info;
+select release_lock("test_lock2_1");
drop event закачка21;
let $wait_condition=
select count(*) = 0 from information_schema.processlist
diff --git a/mysql-test/t/events_logs_tests.test b/mysql-test/t/events_logs_tests.test
index b9ceec2ed82..3240dccbc76 100644
--- a/mysql-test/t/events_logs_tests.test
+++ b/mysql-test/t/events_logs_tests.test
@@ -61,7 +61,8 @@ create event ev_log_general on schedule at now() on completion not preserve
--echo Nothing should be logged
--echo
--replace_column 1 USER_HOST
-select user_host, db, sql_text from mysql.slow_log where sql_text not like 'create event%';
+select user_host, db, sql_text from mysql.slow_log
+ where sql_text like 'select \'events_logs_test\'%';
set @@global.long_query_time=1;
truncate mysql.slow_log;
create event ev_log_general on schedule at now() on completion not preserve
@@ -72,7 +73,8 @@ create event ev_log_general on schedule at now() on completion not preserve
--echo Event sub-statement should be logged.
--echo
--replace_column 1 USER_HOST
-select user_host, db, sql_text from mysql.slow_log where sql_text not like 'create event%';
+select user_host, db, sql_text from mysql.slow_log
+ where sql_text like 'select \'events_logs_test\'%';
drop database events_test;
set global event_scheduler=off;
diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test
index a48f619dc34..01eff55d1f6 100644
--- a/mysql-test/t/func_misc.test
+++ b/mysql-test/t/func_misc.test
@@ -199,3 +199,11 @@ drop function func_26093_a;
drop function func_26093_b;
--echo End of 5.0 tests
+
+#
+# Bug #30389: connection_id() always return 0 in embedded server
+#
+
+select connection_id() > 0;
+
+--echo End of tests
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index 1d06a155717..8a3d62ba91f 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -1047,6 +1047,31 @@ alter database;
--error ER_PARSE_ERROR
alter database test;
+#
+# Bug#27629 Possible security flaw in INFORMATION_SCHEMA and SHOW statements
+#
+
+create database mysqltest;
+create table mysqltest.t1(a int, b int, c int);
+create trigger mysqltest.t1_ai after insert on mysqltest.t1
+ for each row set @a = new.a + new.b + new.c;
+grant select(b) on mysqltest.t1 to mysqltest_1@localhost;
+
+select trigger_name from information_schema.triggers
+where event_object_table='t1';
+show triggers from mysqltest;
+
+connect (con27629,localhost,mysqltest_1,,mysqltest);
+show columns from t1;
+select column_name from information_schema.columns where table_name='t1';
+
+show triggers;
+select trigger_name from information_schema.triggers
+where event_object_table='t1';
+connection default;
+drop user mysqltest_1@localhost;
+drop database mysqltest;
+
--echo End of 5.0 tests.
#
# Show engines
diff --git a/mysql-test/t/information_schema_chmod.test b/mysql-test/t/information_schema_chmod.test
index 38586ab8b67..51e67a0c956 100644
--- a/mysql-test/t/information_schema_chmod.test
+++ b/mysql-test/t/information_schema_chmod.test
@@ -19,5 +19,5 @@ create database mysqltest;
create table mysqltest.t1(a int);
chmod 0000 $MYSQLTEST_VARDIR/master-data/mysqltest;
select table_schema from information_schema.tables where table_schema='mysqltest';
-exec chmod 0777 $MYSQLTEST_VARDIR/master-data/mysqltest;
+chmod 0777 $MYSQLTEST_VARDIR/master-data/mysqltest;
drop database mysqltest;
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 140aac3b9c3..cc1ef6f9730 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -11,13 +11,7 @@
# #
#######################################################################
--- source include/not_embedded.inc
-- source include/have_innodb.inc
--- source include/have_log_bin.inc
-
-# Disabling it temporarily for statement-based logging since some
-# tests are not safe while binlog is on.
--- source include/have_binlog_format_mixed_or_row.inc
#
# Small basic test with ignore
@@ -760,45 +754,6 @@ select * from t2;
drop table t1,t2;
#
-# Bug#27716 multi-update did partially and has not binlogged
-#
-
-CREATE TABLE `t1` (
- `a` int(11) NOT NULL auto_increment,
- `b` int(11) default NULL,
- PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
-
-CREATE TABLE `t2` (
- `a` int(11) NOT NULL auto_increment,
- `b` int(11) default NULL,
- PRIMARY KEY (`a`)
-) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
-
-# A. testing multi_update::send_eof() execution branch
-insert into t1 values (1,1),(2,2);
-insert into t2 values (1,1),(4,4);
-reset master;
---error ER_DUP_ENTRY
-UPDATE t2,t1 SET t2.a=t1.a+2;
-# check
-select * from t2 /* must be (3,1), (4,4) */;
-show master status /* there must no UPDATE in binlog */;
-
-# B. testing multi_update::send_error() execution branch
-delete from t1;
-delete from t2;
-insert into t1 values (1,2),(3,4),(4,4);
-insert into t2 values (1,2),(3,4),(4,4);
-reset master;
---error ER_DUP_ENTRY
-UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
-show master status /* there must be no UPDATE query event */;
-
-# cleanup bug#27716
-drop table t1, t2;
-
-#
# Testing of IFNULL
#
create table t1 (a int, b int) engine=innodb;
@@ -1175,9 +1130,8 @@ drop table t2;
# Test error handling
-# Clean up filename -- embedded server reports whole path without .frm,
-# regular server reports relative path with .frm (argh!)
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ / t2.frm t2
+# Embedded server doesn't chdir to data directory
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
--error ER_WRONG_FK_DEF
create table t2 (id int(11) not null, id2 int(11) not null, constraint t1_id_fk foreign key (id2,id) references t1 (id)) engine = innodb;
@@ -1369,9 +1323,8 @@ source include/varchar.inc;
# Some errors/warnings on create
#
-# Clean up filename -- embedded server reports whole path without .frm,
-# regular server reports relative path with .frm (argh!)
---replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ / t1.frm t1
+# Embedded server doesn't chdir to data directory
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
create table t1 (v varchar(65530), key(v));
drop table t1;
create table t1 (v varchar(65536));
@@ -1645,6 +1598,7 @@ disconnect b;
set foreign_key_checks=0;
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
+# Embedded server doesn't chdir to data directory
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
-- error 1005
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
@@ -1656,6 +1610,7 @@ drop table t2;
set foreign_key_checks=0;
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
+# Embedded server doesn't chdir to data directory
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
-- error 1005
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=utf8;
@@ -1686,6 +1641,7 @@ drop table t2,t1;
set foreign_key_checks=0;
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
create table t3(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=utf8;
+# Embedded server doesn't chdir to data directory
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
-- error 1025
rename table t3 to t1;
@@ -2311,7 +2267,10 @@ CREATE TABLE t2 (a INT, INDEX(a)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
ALTER TABLE t2 ADD FOREIGN KEY (a) REFERENCES t1 (a) ON DELETE SET NULL;
---replace_regex /'\.\/test\/#sql-[0-9a-f_]*'/'#sql-temporary'/
+# mysqltest first does replace_regex, then replace_result
+--replace_regex /'[^']*test\/#sql-[0-9a-f_]*'/'#sql-temporary'/
+# Embedded server doesn't chdir to data directory
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
--error 1025
ALTER TABLE t2 MODIFY a INT NOT NULL;
DELETE FROM t1;
diff --git a/mysql-test/t/insert_notembedded.test b/mysql-test/t/insert_notembedded.test
index bdea72e9eca..24040f9c310 100644
--- a/mysql-test/t/insert_notembedded.test
+++ b/mysql-test/t/insert_notembedded.test
@@ -152,3 +152,38 @@ disconnect root;
connection default;
DROP DATABASE meow;
+
+#
+# Bug#28587 SELECT is blocked by INSERT waiting on read lock, even with low_priority_updates
+#
+--echo connection: default
+set low_priority_updates=1;
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int, b int, unique key t1$a (a));
+lock table t1 read;
+connect (update,localhost,root,,);
+connection update;
+--echo connection: update
+set low_priority_updates=1;
+show variables like 'low_priority_updates';
+let $ID= `select connection_id()`;
+--send insert into t1 values (1, 2) ON DUPLICATE KEY UPDATE b = 2;
+connection default;
+# we must wait till the insert opens and locks the table
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "Locked" and id = $ID;
+--source include/wait_condition.inc
+connect (select,localhost,root,,);
+--echo connection: select
+select * from t1;
+connection default;
+--echo connection: default
+select * from t1;
+connection default;
+disconnect update;
+disconnect select;
+drop table t1;
+set low_priority_updates=default;
diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test
index 4a4f667d3ea..5433d787c14 100644
--- a/mysql-test/t/loaddata.test
+++ b/mysql-test/t/loaddata.test
@@ -43,7 +43,7 @@ delete from t1;
eval load data infile '$MYSQLTEST_VARDIR/tmp/t1' into table t1;
enable_query_log;
select * from t1;
---exec rm $MYSQLTEST_VARDIR/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
disable_query_log;
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1'
@@ -54,7 +54,7 @@ eval load data infile '$MYSQLTEST_VARDIR/tmp/t1' into table t1
FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n';
enable_query_log;
select * from t1;
---exec rm $MYSQLTEST_VARDIR/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
drop table t1;
@@ -89,17 +89,16 @@ INSERT INTO t1 (c1) VALUES
('.r.'), ('.rr.'), ('.rrr.'), ('.rrrr.');
SELECT * FROM t1;
---exec rm -f $MYSQLTEST_VARDIR/tmp/t1
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
---exec cat $MYSQLTEST_VARDIR/tmp/t1
+cat_file $MYSQLTEST_VARDIR/tmp/t1;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t2 FIELDS ENCLOSED BY 'r';
SELECT t1.id, c1, c2 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
SELECT t1.id, c1, c2 FROM t1 RIGHT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
---exec rm $MYSQLTEST_VARDIR/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
DROP TABLE t1,t2;
# End of 4.1 tests
@@ -188,7 +187,7 @@ SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
eval load data infile '$MYSQLTEST_VARDIR/tmp/t1' into table t2;
enable_query_log;
select * from t2;
---exec rm $MYSQLTEST_VARDIR/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
drop table t1,t2;
@@ -204,7 +203,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/t2' from t2;
eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' into table t1;
enable_query_log;
select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
---exec rm $MYSQLTEST_VARDIR/tmp/t2
+remove_file $MYSQLTEST_VARDIR/tmp/t2;
delete from t1;
disable_query_log;
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t2'
@@ -214,7 +213,7 @@ eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' into table t1
FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n';
enable_query_log;
select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
---exec rm $MYSQLTEST_VARDIR/tmp/t2
+remove_file $MYSQLTEST_VARDIR/tmp/t2;
drop table t1,t2;
#
@@ -227,11 +226,10 @@ CREATE TABLE t1 (c1 INT, c2 TIMESTAMP, c3 REAL, c4 DOUBLE);
INSERT INTO t1 (c1, c2, c3, c4) VALUES (10, '1970-02-01 01:02:03', 1.1E-100, 1.1E+100);
SELECT * FROM t1;
---exec rm -f $MYSQLTEST_VARDIR/tmp/t1
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY '-' FROM t1;
---exec cat $MYSQLTEST_VARDIR/tmp/t1
---exec echo EOF
+cat_file $MYSQLTEST_VARDIR/tmp/t1;
+echo EOF;
TRUNCATE t1;
@@ -239,7 +237,7 @@ TRUNCATE t1;
eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 FIELDS ENCLOSED BY '-';
SELECT * FROM t1;
---exec rm $MYSQLTEST_VARDIR/tmp/t1
+remove_file $MYSQLTEST_VARDIR/tmp/t1;
DROP TABLE t1;
# End of 5.0 tests
@@ -264,6 +262,6 @@ select @@character_set_filesystem;
LOAD DATA INFILE 't@002d1' INTO TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;
---exec rm $MYSQLTEST_VARDIR/master-data/test/t@002d1
+remove_file $MYSQLTEST_VARDIR/master-data/test/t@002d1;
SET character_set_filesystem=default;
select @@character_set_filesystem;
diff --git a/mysql-test/t/lock_multi.test b/mysql-test/t/lock_multi.test
index 8ffa67f8439..b2266c9bff1 100644
--- a/mysql-test/t/lock_multi.test
+++ b/mysql-test/t/lock_multi.test
@@ -328,4 +328,19 @@ unlock tables;
connection default;
drop table t1;
+#
+# Bug#25856 - HANDLER table OPEN in one connection lock DROP TABLE in another one
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+create table t1 (a int) ENGINE=MEMORY;
+--echo --> client 2
+connection locker;
+--error 1031
+handler t1 open;
+--echo --> client 1
+connection default;
+drop table t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test
index 16f5fecf051..3ee04f32640 100644
--- a/mysql-test/t/mysql.test
+++ b/mysql-test/t/mysql.test
@@ -242,18 +242,21 @@ DELIMITER /
SELECT 1/
EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# This should give an error...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \
EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# As should this...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \\
EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
#
# Some coverage of not normally used parts
@@ -274,6 +277,11 @@ EOF
--exec $MYSQL --pager="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" > /dev/null 2>&1
--exec $MYSQL --character-sets-dir="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" 2>&1
+#
+# bug #30164: Using client side macro inside server side comments generates broken queries
+#
+--exec $MYSQL test -e "/*! \C latin1 */ select 1;"
+
--echo End of 5.0 tests
#
diff --git a/mysql-test/t/mysqladmin.test b/mysql-test/t/mysqladmin.test
index 3fa03fa910e..839ecf00b60 100644
--- a/mysql-test/t/mysqladmin.test
+++ b/mysql-test/t/mysqladmin.test
@@ -20,7 +20,7 @@ EOF
--replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/
--error 7
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
-
+remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
# When mysqladmin finds "loose-database" in .cnf file it shall print
# a warning and continue
@@ -32,3 +32,4 @@ EOF
--replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
diff --git a/mysql-test/t/mysqlbinlog2.test b/mysql-test/t/mysqlbinlog2.test
index 9e56b7a07c7..be9397aafee 100644
--- a/mysql-test/t/mysqlbinlog2.test
+++ b/mysql-test/t/mysqlbinlog2.test
@@ -41,7 +41,8 @@ select "--- Local --" as "";
# be time dependent (the Start events). Better than nothing.
#
---exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
+--replace_regex /[[:<:]][0-9]{6} [0-9 ][0-9]:[0-9]{2}:[0-9]{2}[[:>:]]/{yymmdd} {HH:MM:SS}/ /=[0-9]+ /={integer} / /# at [0-9]+/# at {pos}/ /(pos:?) [0-9]+/\1 {pos}/ /binlog v [0-9]+, server v [^ ]* created/binlog v #, server v ## created/
+--exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000001
--disable_query_log
select "--- offset --" as "";
diff --git a/mysql-test/t/mysqlslap.test b/mysql-test/t/mysqlslap.test
index 192aefb0e03..dffa226d101 100644
--- a/mysql-test/t/mysqlslap.test
+++ b/mysql-test/t/mysqlslap.test
@@ -38,3 +38,5 @@
--exec $MYSQL_SLAP --only-print --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --engine="heap,myisam" --post-query="SHOW TABLES" --pre-query="SHOW TABLES";
--exec $MYSQL_SLAP --only-print --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --engine="heap,myisam" --post-query="SHOW TABLES" --pre-query="SHOW TABLES" --number-of-queries=6 --commit=1;
+
+--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=write --detach=2
diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test
index b01579dce53..8a38972c00f 100644
--- a/mysql-test/t/mysqltest.test
+++ b/mysql-test/t/mysqltest.test
@@ -366,6 +366,7 @@ show status;
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
#
# Missing delimiter until eof
@@ -377,6 +378,7 @@ sleep 7
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
#
# Missing delimiter until "disable_query_log"
@@ -391,6 +393,7 @@ disable_query_log;
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
#
# Missing delimiter until "disable_query_log"
@@ -406,6 +409,7 @@ disable_query_log;
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
#
# Missing delimiter until eof
@@ -422,6 +426,7 @@ disconnect default
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
#
# Missing delimiter until eof
@@ -436,6 +441,8 @@ EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
+
#
# Extra delimiter
#
@@ -734,38 +741,40 @@ if (`select length("$var3") > 0`)
# Test to assign let from query
# let $<var_name>=`<query>`;
# ----------------------------------------------------------------------------
---disable_parsing
echo var1;
let $var1= `select "hi" as "Col", 1 as "Column1", "hi there" as Col3`;
echo $var1;
-echo $var1_Col;
-echo $var1_Column1;
-echo $var1_Col3;
echo var2;
let $var2= `select 2 as "Column num 2"`;
echo $var2;
-echo $var2_Column num 2;
-echo $var2_Column;
echo var2 again;
let $var2= `select 2 as "Column num 2"`;
echo $var2;
-echo $var2_Column num 2;
-echo $var2_Column_num_2;
-echo $var2_Column;
echo var3 two columns with same name;
let $var3= `select 1 as "Col", 2 as "Col", 3 as "var3"`;
echo $var3;
-echo $var3_Col;
-echo $var3_Col;
-echo $var3_var3;
-#echo failing query in let;
-#--error 1
-#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
---enable_parsing
+echo var4 from query that returns NULL;
+let $var4= `select NULL`;
+
+echo var5 from query that returns no row;
+let $var5= `SHOW VARIABLES LIKE "nonexisting_variable"`;
+
+echo failing query in let;
+--write_file $MYSQLTEST_VARDIR/tmp/let.sql
+let $var2= `failing query`;
+echo $var2;
+EOF
+
+--error 1
+--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/let.sql 2>&1
+
+remove_file $MYSQLTEST_VARDIR/tmp/let.sql;
+
+
# ----------------------------------------------------------------------------
# Test source command
# ----------------------------------------------------------------------------
@@ -786,6 +795,7 @@ echo $var3_var3;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/recursive.sql;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/recursive.sql;
# Source a file with error
--exec echo "garbage ;" > $MYSQLTEST_VARDIR/tmp/error.sql
@@ -793,6 +803,7 @@ echo $var3_var3;
--error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/error.sql;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/error.sql;
# Test execution of source in a while loop
--write_file $MYSQLTEST_VARDIR/tmp/sourced.inc
@@ -843,6 +854,19 @@ while ($num)
--remove_file $MYSQLTEST_VARDIR/tmp/sourced.inc
+--write_file $MYSQLTEST_VARDIR/tmp/sourced.inc
+echo "hello";
+EOF
+
+let $x= sourced;
+source $MYSQLTEST_VARDIR/tmp/$x.inc;
+
+let $x= $MYSQLTEST_VARDIR;
+source $x/tmp/sourced.inc;
+
+--remove_file $MYSQLTEST_VARDIR/tmp/sourced.inc
+
+
# ----------------------------------------------------------------------------
# Test sleep command
# ----------------------------------------------------------------------------
@@ -963,7 +987,7 @@ if (!$counter)
echo Counter is not 0, (counter=10);
}
let $counter=0;
-if ($counter)
+if($counter)
{
echo Counter is greater than 0, (counter=0);
}
@@ -1156,6 +1180,7 @@ echo hej;
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
while (0)
@@ -1163,6 +1188,7 @@ while (0)
EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
while (0){
@@ -1171,6 +1197,8 @@ EOF
--error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
+
# ----------------------------------------------------------------------------
# Test error messages returned from comments starting with a command
# ----------------------------------------------------------------------------
@@ -1262,6 +1290,7 @@ while ($i)
}
EOF
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Repeat connect/disconnect
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
@@ -1276,6 +1305,7 @@ EOF
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Select disconnected connection
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
@@ -1286,6 +1316,7 @@ EOF
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Connection name already used
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
@@ -1296,6 +1327,8 @@ EOF
--error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
+
# connect when "disable_abort_on_error" caused "connection not found"
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
--disable_abort_on_error
@@ -1399,7 +1432,11 @@ select "this will be executed";
--exec touch $MYSQLTEST_VARDIR/tmp/zero_length_file.result
--exec echo "echo ok;" > $MYSQLTEST_VARDIR/tmp/query.sql
--error 1
---exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql -R $MYSQLTEST_VARDIR/tmp/zero_length_file.result 2>&1
+--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql -R $MYSQLTEST_VARDIR/tmp/zero_length_file.result > /dev/null 2>&1
+
+remove_file $MYSQLTEST_VARDIR/tmp/zero_length_file.result;
+remove_file $MYSQLTEST_VARDIR/log/zero_length_file.reject;
+
#
# Test that a test file that does not generate any output fails.
#
@@ -1407,6 +1444,8 @@ select "this will be executed";
--error 1
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/query.sql 2>&1
+remove_file $MYSQLTEST_VARDIR/tmp/query.sql;
+
#
# Test that mysqltest fails when there are no queries executed
# but a result file exists
@@ -1436,6 +1475,7 @@ echo Failing multi statement query;
--exec $MYSQL_TEST -x $MYSQLTEST_VARDIR/tmp/bug11731.sql 2>&1
drop table t1;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1
--exec $MYSQL_TEST --record -x $MYSQLTEST_VARDIR/tmp/bug11731.sql -R $MYSQLTEST_VARDIR/tmp/bug11731.out 2>&1
# The .out file should be non existent
@@ -1462,6 +1502,9 @@ drop table t1;
# The .out file should exist
--exec test -s $MYSQLTEST_VARDIR/tmp/bug11731.out
drop table t1;
+remove_file $MYSQLTEST_VARDIR/tmp/bug11731.out;
+remove_file $MYSQLTEST_VARDIR/log/bug11731.log;
+remove_file $MYSQLTEST_VARDIR/tmp/bug11731.sql;
#
# Bug#19890 mysqltest: "query" command is broken
@@ -1544,12 +1587,19 @@ write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
Content for test_file1
EOF
file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
+cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp END_DELIMITER;
Content for test_file1 contains EOF
END_DELIMITER
file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
+
+# write to already exisiting file
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--error 1
+--exec echo "write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;" | $MYSQL_TEST 2>&1
+
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
# ----------------------------------------------------------------------------
@@ -1571,6 +1621,8 @@ append_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
Appended text on nonexisting file
EOF
+remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
+
# ----------------------------------------------------------------------------
# test for cat_file
# ----------------------------------------------------------------------------
@@ -1581,6 +1633,7 @@ for cat_file command
of mysqltest
EOF
cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
+remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
--error 1
--exec echo "cat_file non_existing_file;" | $MYSQL_TEST 2>&1
@@ -1607,19 +1660,48 @@ for diff_file command
of mysqltest
EOF
+--write_file $MYSQLTEST_VARDIR/tmp/diff4.tmp
+Some data
+for diff_file command
+of musqltest
+EOF
+
# Compare equal files
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
--diff_files $MYSQLTEST_VARDIR/tmp/diff2.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
-# Compare files that differ
+# Write the below commands to a intermediary file and execute them with
+# mysqltest in --exec, since the output will vary depending on what "diff"
+# is available it is sent to /dev/null
+--write_file $MYSQLTEST_VARDIR/tmp/diff.test
+# Compare files that differ in size
+--error 2
+--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff3.tmp
+--error 2
+--diff_files $MYSQLTEST_VARDIR/tmp/diff3.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
+
+# Compare files that differ only in content
--error 1
---diff_files $MYSQLTEST_VARDIR/tmp/diff3.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
+--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff4.tmp
--error 1
---diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff3.tmp
+--diff_files $MYSQLTEST_VARDIR/tmp/diff4.tmp $MYSQLTEST_VARDIR/tmp/diff1.tmp
+EOF
+
+# Execute the above diffs, and send their output to /dev/null - only
+# interesting to see that it returns correct error codes
+--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/diff.test > /dev/null 2>&1
+
# Compare equal files, again...
--diff_files $MYSQLTEST_VARDIR/tmp/diff1.tmp $MYSQLTEST_VARDIR/tmp/diff2.tmp
+--remove_file $MYSQLTEST_VARDIR/tmp/diff1.tmp
+--remove_file $MYSQLTEST_VARDIR/tmp/diff2.tmp
+--remove_file $MYSQLTEST_VARDIR/tmp/diff3.tmp
+--remove_file $MYSQLTEST_VARDIR/tmp/diff4.tmp
+--remove_file $MYSQLTEST_VARDIR/tmp/diff.test
+
+
# ----------------------------------------------------------------------------
# test for file_exist
# ----------------------------------------------------------------------------
@@ -1672,6 +1754,7 @@ chmod 0000 $MYSQLTEST_VARDIR/tmp/file1.tmp;
#EOF
chmod 0777 $MYSQLTEST_VARDIR/tmp/file1.tmp;
+remove_file $MYSQLTEST_VARDIR/tmp/file1.tmp;
--write_file $MYSQLTEST_VARDIR/tmp/file1.tmp
test2
EOF
diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test
index 65aa9dbb89b..79c9129bb74 100644
--- a/mysql-test/t/parser.test
+++ b/mysql-test/t/parser.test
@@ -363,6 +363,28 @@ create table VAR_SAMP(a int);
--error ER_PARSE_ERROR
create table VAR_SAMP (a int);
+#
+# Bug#25930 (CREATE TABLE x SELECT ... parses columns wrong when ran with
+# ANSI_QUOTES mode)
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS table_25930_a;
+DROP TABLE IF EXISTS table_25930_b;
+--enable_warnings
+
+SET SQL_MODE = 'ANSI_QUOTES';
+CREATE TABLE table_25930_a ( "blah" INT );
+CREATE TABLE table_25930_b SELECT "blah" - 1 FROM table_25930_a;
+
+# The lexer used to chop the first <">,
+# not marking the start of the token "blah" correctly.
+desc table_25930_b;
+
+DROP TABLE table_25930_a;
+DROP TABLE table_25930_b;
+
+
SET @@sql_mode=@save_sql_mode;
#=============================================================================
diff --git a/mysql-test/t/parser_precedence.test b/mysql-test/t/parser_precedence.test
new file mode 100644
index 00000000000..484c8759779
--- /dev/null
+++ b/mysql-test/t/parser_precedence.test
@@ -0,0 +1,333 @@
+
+--disable_warnings
+drop table if exists t1_30237_bool;
+--enable_warnings
+
+create table t1_30237_bool(A boolean, B boolean, C boolean);
+
+insert into t1_30237_bool values
+(FALSE, FALSE, FALSE),
+(FALSE, FALSE, NULL),
+(FALSE, FALSE, TRUE),
+(FALSE, NULL, FALSE),
+(FALSE, NULL, NULL),
+(FALSE, NULL, TRUE),
+(FALSE, TRUE, FALSE),
+(FALSE, TRUE, NULL),
+(FALSE, TRUE, TRUE),
+(NULL, FALSE, FALSE),
+(NULL, FALSE, NULL),
+(NULL, FALSE, TRUE),
+(NULL, NULL, FALSE),
+(NULL, NULL, NULL),
+(NULL, NULL, TRUE),
+(NULL, TRUE, FALSE),
+(NULL, TRUE, NULL),
+(NULL, TRUE, TRUE),
+(TRUE, FALSE, FALSE),
+(TRUE, FALSE, NULL),
+(TRUE, FALSE, TRUE),
+(TRUE, NULL, FALSE),
+(TRUE, NULL, NULL),
+(TRUE, NULL, TRUE),
+(TRUE, TRUE, FALSE),
+(TRUE, TRUE, NULL),
+(TRUE, TRUE, TRUE) ;
+
+--echo Testing OR, XOR, AND
+select A, B, A OR B, A XOR B, A AND B
+ from t1_30237_bool where C is null order by A, B;
+
+--echo Testing that OR is associative
+select A, B, C, (A OR B) OR C, A OR (B OR C), A OR B OR C
+ from t1_30237_bool order by A, B, C;
+
+select count(*) from t1_30237_bool
+ where ((A OR B) OR C) != (A OR (B OR C));
+
+--echo Testing that XOR is associative
+select A, B, C, (A XOR B) XOR C, A XOR (B XOR C), A XOR B XOR C
+ from t1_30237_bool order by A, B, C;
+
+select count(*) from t1_30237_bool
+ where ((A XOR B) XOR C) != (A XOR (B XOR C));
+
+--echo Testing that AND is associative
+select A, B, C, (A AND B) AND C, A AND (B AND C), A AND B AND C
+ from t1_30237_bool order by A, B, C;
+
+select count(*) from t1_30237_bool
+ where ((A AND B) AND C) != (A AND (B AND C));
+
+--echo Testing that AND has precedence over OR
+select A, B, C, (A OR B) AND C, A OR (B AND C), A OR B AND C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where (A OR (B AND C)) != (A OR B AND C);
+select A, B, C, (A AND B) OR C, A AND (B OR C), A AND B OR C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where ((A AND B) OR C) != (A AND B OR C);
+
+--echo Testing that AND has precedence over XOR
+select A, B, C, (A XOR B) AND C, A XOR (B AND C), A XOR B AND C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where (A XOR (B AND C)) != (A XOR B AND C);
+select A, B, C, (A AND B) XOR C, A AND (B XOR C), A AND B XOR C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where ((A AND B) XOR C) != (A AND B XOR C);
+
+--echo Testing that XOR has precedence over OR
+select A, B, C, (A XOR B) OR C, A XOR (B OR C), A XOR B OR C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where ((A XOR B) OR C) != (A XOR B OR C);
+select A, B, C, (A OR B) XOR C, A OR (B XOR C), A OR B XOR C
+ from t1_30237_bool order by A, B, C;
+select count(*) from t1_30237_bool
+ where (A OR (B XOR C)) != (A OR B XOR C);
+
+drop table t1_30237_bool;
+
+--echo Testing that NOT has precedence over OR
+select (NOT FALSE) OR TRUE, NOT (FALSE OR TRUE), NOT FALSE OR TRUE;
+
+--echo Testing that NOT has precedence over XOR
+select (NOT FALSE) XOR FALSE, NOT (FALSE XOR FALSE), NOT FALSE XOR FALSE;
+
+--echo Testing that NOT has precedence over AND
+select (NOT FALSE) AND FALSE, NOT (FALSE AND FALSE), NOT FALSE AND FALSE;
+
+--echo Testing that NOT is associative
+select NOT NOT TRUE, NOT NOT NOT FALSE;
+
+--echo Testing that IS has precedence over NOT
+select (NOT NULL) IS TRUE, NOT (NULL IS TRUE), NOT NULL IS TRUE;
+select (NOT NULL) IS NOT TRUE, NOT (NULL IS NOT TRUE), NOT NULL IS NOT TRUE;
+select (NOT NULL) IS FALSE, NOT (NULL IS FALSE), NOT NULL IS FALSE;
+select (NOT NULL) IS NOT FALSE, NOT (NULL IS NOT FALSE), NOT NULL IS NOT FALSE;
+select (NOT TRUE) IS UNKNOWN, NOT (TRUE IS UNKNOWN), NOT TRUE IS UNKNOWN;
+select (NOT TRUE) IS NOT UNKNOWN, NOT (TRUE IS NOT UNKNOWN), NOT TRUE IS NOT UNKNOWN;
+select (NOT TRUE) IS NULL, NOT (TRUE IS NULL), NOT TRUE IS NULL;
+select (NOT TRUE) IS NOT NULL, NOT (TRUE IS NOT NULL), NOT TRUE IS NOT NULL;
+
+--echo Testing that IS [NOT] TRUE/FALSE/UNKNOWN predicates are not associative
+# Documenting existing behavior in 5.0.48
+-- error ER_PARSE_ERROR
+select TRUE IS TRUE IS TRUE IS TRUE;
+-- error ER_PARSE_ERROR
+select FALSE IS NOT TRUE IS NOT TRUE IS NOT TRUE;
+-- error ER_PARSE_ERROR
+select NULL IS FALSE IS FALSE IS FALSE;
+-- error ER_PARSE_ERROR
+select TRUE IS NOT FALSE IS NOT FALSE IS NOT FALSE;
+-- error ER_PARSE_ERROR
+select FALSE IS UNKNOWN IS UNKNOWN IS UNKNOWN;
+-- error ER_PARSE_ERROR
+select TRUE IS NOT UNKNOWN IS NOT UNKNOWN IS NOT UNKNOWN;
+
+--echo Testing that IS [NOT] NULL predicates are associative
+# Documenting existing behavior in 5.0.48
+select FALSE IS NULL IS NULL IS NULL;
+select TRUE IS NOT NULL IS NOT NULL IS NOT NULL;
+
+--echo Testing that comparison operators are left associative
+select 1 <=> 2 <=> 2, (1 <=> 2) <=> 2, 1 <=> (2 <=> 2);
+select 1 = 2 = 2, (1 = 2) = 2, 1 = (2 = 2);
+select 1 != 2 != 3, (1 != 2) != 3, 1 != (2 != 3);
+select 1 <> 2 <> 3, (1 <> 2) <> 3, 1 <> (2 <> 3);
+select 1 < 2 < 3, (1 < 2) < 3, 1 < (2 < 3);
+select 3 <= 2 <= 1, (3 <= 2) <= 1, 3 <= (2 <= 1);
+select 1 > 2 > 3, (1 > 2) > 3, 1 > (2 > 3);
+select 1 >= 2 >= 3, (1 >= 2) >= 3, 1 >= (2 >= 3);
+
+-- echo Testing that | is associative
+select 0xF0 | 0x0F | 0x55, (0xF0 | 0x0F) | 0x55, 0xF0 | (0x0F | 0x55);
+
+-- echo Testing that & is associative
+select 0xF5 & 0x5F & 0x55, (0xF5 & 0x5F) & 0x55, 0xF5 & (0x5F & 0x55);
+
+-- echo Testing that << is left associative
+select 4 << 3 << 2, (4 << 3) << 2, 4 << (3 << 2);
+
+-- echo Testing that >> is left associative
+select 256 >> 3 >> 2, (256 >> 3) >> 2, 256 >> (3 >> 2);
+
+--echo Testing that & has precedence over |
+select 0xF0 & 0x0F | 0x55, (0xF0 & 0x0F) | 0x55, 0xF0 & (0x0F | 0x55);
+select 0x55 | 0xF0 & 0x0F, (0x55 | 0xF0) & 0x0F, 0x55 | (0xF0 & 0x0F);
+
+--echo Testing that << has precedence over |
+select 0x0F << 4 | 0x0F, (0x0F << 4) | 0x0F, 0x0F << (4 | 0x0F);
+select 0x0F | 0x0F << 4, (0x0F | 0x0F) << 4, 0x0F | (0x0F << 4);
+
+--echo Testing that >> has precedence over |
+select 0xF0 >> 4 | 0xFF, (0xF0 >> 4) | 0xFF, 0xF0 >> (4 | 0xFF);
+select 0xFF | 0xF0 >> 4, (0xFF | 0xF0) >> 4, 0xFF | (0xF0 >> 4);
+
+--echo Testing that << has precedence over &
+select 0x0F << 4 & 0xF0, (0x0F << 4) & 0xF0, 0x0F << (4 & 0xF0);
+select 0xF0 & 0x0F << 4, (0xF0 & 0x0F) << 4, 0xF0 & (0x0F << 4);
+
+--echo Testing that >> has precedence over &
+select 0xF0 >> 4 & 0x55, (0xF0 >> 4) & 0x55, 0xF0 >> (4 & 0x55);
+select 0x0F & 0xF0 >> 4, (0x0F & 0xF0) >> 4, 0x0F & (0xF0 >> 4);
+
+--echo Testing that >> and << have the same precedence
+select 0xFF >> 4 << 2, (0xFF >> 4) << 2, 0xFF >> (4 << 2);
+select 0x0F << 4 >> 2, (0x0F << 4) >> 2, 0x0F << (4 >> 2);
+
+--echo Testing that binary + is associative
+select 1 + 2 + 3, (1 + 2) + 3, 1 + (2 + 3);
+
+--echo Testing that binary - is left associative
+select 1 - 2 - 3, (1 - 2) - 3, 1 - (2 - 3);
+
+--echo Testing that binary + and binary - have the same precedence
+# evaluated left to right
+select 1 + 2 - 3, (1 + 2) - 3, 1 + (2 - 3);
+select 1 - 2 + 3, (1 - 2) + 3, 1 - (2 + 3);
+
+--echo Testing that binary + has precedence over |
+select 0xF0 + 0x0F | 0x55, (0xF0 + 0x0F) | 0x55, 0xF0 + (0x0F | 0x55);
+select 0x55 | 0xF0 + 0x0F, (0x55 | 0xF0) + 0x0F, 0x55 | (0xF0 + 0x0F);
+
+--echo Testing that binary + has precedence over &
+select 0xF0 + 0x0F & 0x55, (0xF0 + 0x0F) & 0x55, 0xF0 + (0x0F & 0x55);
+select 0x55 & 0xF0 + 0x0F, (0x55 & 0xF0) + 0x0F, 0x55 & (0xF0 + 0x0F);
+
+--echo Testing that binary + has precedence over <<
+select 2 + 3 << 4, (2 + 3) << 4, 2 + (3 << 4);
+select 3 << 4 + 2, (3 << 4) + 2, 3 << (4 + 2);
+
+--echo Testing that binary + has precedence over >>
+select 4 + 3 >> 2, (4 + 3) >> 2, 4 + (3 >> 2);
+select 3 >> 2 + 1, (3 >> 2) + 1, 3 >> (2 + 1);
+
+--echo Testing that binary - has precedence over |
+select 0xFF - 0x0F | 0x55, (0xFF - 0x0F) | 0x55, 0xFF - (0x0F | 0x55);
+select 0x55 | 0xFF - 0xF0, (0x55 | 0xFF) - 0xF0, 0x55 | (0xFF - 0xF0);
+
+--echo Testing that binary - has precedence over &
+select 0xFF - 0xF0 & 0x55, (0xFF - 0xF0) & 0x55, 0xFF - (0xF0 & 0x55);
+select 0x55 & 0xFF - 0xF0, (0x55 & 0xFF) - 0xF0, 0x55 & (0xFF - 0xF0);
+
+--echo Testing that binary - has precedence over <<
+select 16 - 3 << 2, (16 - 3) << 2, 16 - (3 << 2);
+select 4 << 3 - 2, (4 << 3) - 2, 4 << (3 - 2);
+
+--echo Testing that binary - has precedence over >>
+select 16 - 3 >> 2, (16 - 3) >> 2, 16 - (3 >> 2);
+select 16 >> 3 - 2, (16 >> 3) - 2, 16 >> (3 - 2);
+
+--echo Testing that * is associative
+select 2 * 3 * 4, (2 * 3) * 4, 2 * (3 * 4);
+
+--echo Testing that * has precedence over |
+select 2 * 0x40 | 0x0F, (2 * 0x40) | 0x0F, 2 * (0x40 | 0x0F);
+select 0x0F | 2 * 0x40, (0x0F | 2) * 0x40, 0x0F | (2 * 0x40);
+
+--echo Testing that * has precedence over &
+select 2 * 0x40 & 0x55, (2 * 0x40) & 0x55, 2 * (0x40 & 0x55);
+select 0xF0 & 2 * 0x40, (0xF0 & 2) * 0x40, 0xF0 & (2 * 0x40);
+
+--echo Testing that * has precedence over <<
+# Actually, can't prove it for the first case,
+# since << is a multiplication by a power of 2,
+# and * is associative
+select 5 * 3 << 4, (5 * 3) << 4, 5 * (3 << 4);
+select 2 << 3 * 4, (2 << 3) * 4, 2 << (3 * 4);
+
+--echo Testing that * has precedence over >>
+# >> is a multiplication by a (negative) power of 2,
+# see above.
+select 3 * 4 >> 2, (3 * 4) >> 2, 3 * (4 >> 2);
+select 4 >> 2 * 3, (4 >> 2) * 3, 4 >> (2 * 3);
+
+--echo Testing that * has precedence over binary +
+select 2 * 3 + 4, (2 * 3) + 4, 2 * (3 + 4);
+select 2 + 3 * 4, (2 + 3) * 4, 2 + (3 * 4);
+
+--echo Testing that * has precedence over binary -
+select 4 * 3 - 2, (4 * 3) - 2, 4 * (3 - 2);
+select 4 - 3 * 2, (4 - 3) * 2, 4 - (3 * 2);
+
+--echo Testing that / is left associative
+select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3);
+
+--echo Testing that / has precedence over |
+select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2);
+select 105 | 2 / 5, (105 | 2) / 5, 105 | (2 / 5);
+
+--echo Testing that / has precedence over &
+select 105 / 5 & 0x0F, (105 / 5) & 0x0F, 105 / (5 & 0x0F);
+select 0x0F & 105 / 5, (0x0F & 105) / 5, 0x0F & (105 / 5);
+
+--echo Testing that / has precedence over <<
+select 0x80 / 4 << 2, (0x80 / 4) << 2, 0x80 / (4 << 2);
+select 0x80 << 4 / 2, (0x80 << 4) / 2, 0x80 << (4 / 2);
+
+--echo Testing that / has precedence over >>
+select 0x80 / 4 >> 2, (0x80 / 4) >> 2, 0x80 / (4 >> 2);
+select 0x80 >> 4 / 2, (0x80 >> 4) / 2, 0x80 >> (4 / 2);
+
+--echo Testing that / has precedence over binary +
+select 0x80 / 2 + 2, (0x80 / 2) + 2, 0x80 / (2 + 2);
+select 0x80 + 2 / 2, (0x80 + 2) / 2, 0x80 + (2 / 2);
+
+--echo Testing that / has precedence over binary -
+select 0x80 / 4 - 2, (0x80 / 4) - 2, 0x80 / (4 - 2);
+select 0x80 - 4 / 2, (0x80 - 4) / 2, 0x80 - (4 / 2);
+
+# TODO: %, DIV, MOD
+
+--echo Testing that ^ is associative
+select 0xFF ^ 0xF0 ^ 0x0F, (0xFF ^ 0xF0) ^ 0x0F, 0xFF ^ (0xF0 ^ 0x0F);
+select 0xFF ^ 0xF0 ^ 0x55, (0xFF ^ 0xF0) ^ 0x55, 0xFF ^ (0xF0 ^ 0x55);
+
+--echo Testing that ^ has precedence over |
+select 0xFF ^ 0xF0 | 0x0F, (0xFF ^ 0xF0) | 0x0F, 0xFF ^ (0xF0 | 0x0F);
+select 0xF0 | 0xFF ^ 0xF0, (0xF0 | 0xFF) ^ 0xF0, 0xF0 | (0xFF ^ 0xF0);
+
+--echo Testing that ^ has precedence over &
+select 0xFF ^ 0xF0 & 0x0F, (0xFF ^ 0xF0) & 0x0F, 0xFF ^ (0xF0 & 0x0F);
+select 0x0F & 0xFF ^ 0xF0, (0x0F & 0xFF) ^ 0xF0, 0x0F & (0xFF ^ 0xF0);
+
+--echo Testing that ^ has precedence over <<
+select 0xFF ^ 0xF0 << 2, (0xFF ^ 0xF0) << 2, 0xFF ^ (0xF0 << 2);
+select 0x0F << 2 ^ 0xFF, (0x0F << 2) ^ 0xFF, 0x0F << (2 ^ 0xFF);
+
+--echo Testing that ^ has precedence over >>
+select 0xFF ^ 0xF0 >> 2, (0xFF ^ 0xF0) >> 2, 0xFF ^ (0xF0 >> 2);
+select 0xFF >> 2 ^ 0xF0, (0xFF >> 2) ^ 0xF0, 0xFF >> (2 ^ 0xF0);
+
+--echo Testing that ^ has precedence over binary +
+select 0xFF ^ 0xF0 + 0x0F, (0xFF ^ 0xF0) + 0x0F, 0xFF ^ (0xF0 + 0x0F);
+select 0x0F + 0xFF ^ 0xF0, (0x0F + 0xFF) ^ 0xF0, 0x0F + (0xFF ^ 0xF0);
+
+--echo Testing that ^ has precedence over binary -
+select 0xFF ^ 0xF0 - 1, (0xFF ^ 0xF0) - 1, 0xFF ^ (0xF0 - 1);
+select 0x55 - 0x0F ^ 0x55, (0x55 - 0x0F) ^ 0x55, 0x55 - (0x0F ^ 0x55);
+
+--echo Testing that ^ has precedence over *
+select 0xFF ^ 0xF0 * 2, (0xFF ^ 0xF0) * 2, 0xFF ^ (0xF0 * 2);
+select 2 * 0xFF ^ 0xF0, (2 * 0xFF) ^ 0xF0, 2 * (0xFF ^ 0xF0);
+
+--echo Testing that ^ has precedence over /
+select 0xFF ^ 0xF0 / 2, (0xFF ^ 0xF0) / 2, 0xFF ^ (0xF0 / 2);
+select 0xF2 / 2 ^ 0xF0, (0xF2 / 2) ^ 0xF0, 0xF2 / (2 ^ 0xF0);
+
+--echo Testing that ^ has precedence over %
+select 0xFF ^ 0xF0 % 0x20, (0xFF ^ 0xF0) % 0x20, 0xFF ^ (0xF0 % 0x20);
+select 0xFF % 0x20 ^ 0xF0, (0xFF % 0x20) ^ 0xF0, 0xFF % (0x20 ^ 0xF0);
+
+--echo Testing that ^ has precedence over DIV
+select 0xFF ^ 0xF0 DIV 2, (0xFF ^ 0xF0) DIV 2, 0xFF ^ (0xF0 DIV 2);
+select 0xF2 DIV 2 ^ 0xF0, (0xF2 DIV 2) ^ 0xF0, 0xF2 DIV (2 ^ 0xF0);
+
+--echo Testing that ^ has precedence over MOD
+select 0xFF ^ 0xF0 MOD 0x20, (0xFF ^ 0xF0) MOD 0x20, 0xFF ^ (0xF0 MOD 0x20);
+select 0xFF MOD 0x20 ^ 0xF0, (0xFF MOD 0x20) ^ 0xF0, 0xFF MOD (0x20 ^ 0xF0);
+
diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test
index 5a4d30fdd50..dea86bdd2fa 100644
--- a/mysql-test/t/ps.test
+++ b/mysql-test/t/ps.test
@@ -1181,9 +1181,6 @@ deallocate prepare stmt2;
#
# CREATE TABLE with DATA DIRECTORY option
#
-# Protect ourselves from data left in tmp/ by a previos possibly failed
-# test
---system rm -f $MYSQLTEST_VARDIR/tmp/t1.*
--disable_warnings
--disable_query_log
eval prepare stmt from "create table t1 (c char(10)) data directory='$MYSQLTEST_VARDIR/tmp'";
diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test
index 13773504fb0..42bf39890de 100644
--- a/mysql-test/t/ps_1general.test
+++ b/mysql-test/t/ps_1general.test
@@ -577,7 +577,7 @@ prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ;
create table t5 (a int) ;
# rename must fail, t7 does not exist
# Clean up the filename here because embedded server reports whole path
---replace_result \\ / $MYSQLTEST_VARDIR . /master-data/ "" t7.frm t7
+--replace_result $MYSQLTEST_VARDIR . master-data/ '' t7.frm t7
--error 1017
execute stmt1 ;
create table t7 (a int) ;
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index f769d6ad776..d06698cdb17 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -1,5 +1,10 @@
-- source include/have_query_cache.inc
+# Disabled on embedded due to bug #30710, "query_cache.test fails on
+# embedded w/ per-column privs test". Please re-enable when that bug
+# is resolved.
+-- source include/not_embedded.inc
+
#
# Tests with query cache
#
@@ -1249,13 +1254,43 @@ connection default;
disconnect user1;
disconnect user2;
disconnect user3;
+
+#
+# Bug #30269 Query cache eats memory
+#
+--disable_warnings
+DROP DATABASE IF EXISTS bug30269;
+--enable_warnings
+FLUSH STATUS;
+CREATE DATABASE bug30269;
+USE bug30269;
+CREATE TABLE test1 (id int, name varchar(23));
+CREATE VIEW view1 AS SELECT * FROM test1;
+INSERT INTO test1 VALUES (5, 'testit');
+GRANT SELECT (id) ON TABLE bug30269.test1 TO 'bug30269'@'localhost';
+GRANT SELECT ON TABLE bug30269.view1 TO 'bug30269'@'localhost';
+set global query_cache_size= 81920;
+connect (bug30269, localhost, bug30269,,);
+connection bug30269;
+USE bug30269;
+show status like 'Qcache_queries_in_cache';
+--echo # Select statement not stored in query cache because of column privileges.
+SELECT id FROM test1 WHERE id>2;
+show status like 'Qcache_queries_in_cache';
+SELECT id FROM view1 WHERE id>2;
+show status like 'Qcache_queries_in_cache';
+
+connection default;
+DROP DATABASE bug30269;
+disconnect bug30269;
+DROP USER 'bug30269'@'localhost';
+
set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
set GLOBAL query_cache_size=default;
--echo End of 5.0 tests
-
#
# Bug #28211 RENAME DATABASE and query cache don't play nicely together
#
diff --git a/mysql-test/t/view_query_cache.test b/mysql-test/t/query_cache_with_views.test
index d4ebe45b7ac..d4ebe45b7ac 100644
--- a/mysql-test/t/view_query_cache.test
+++ b/mysql-test/t/query_cache_with_views.test
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index b513d17bfa0..3f17eb92d40 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -3389,4 +3389,64 @@ eval EXPLAIN SELECT c1 FROM t1 WHERE $q > 0;
DROP TABLE t1;
+#
+# Bug #30396: crash for a join with equalities and sargable predicates
+# in disjunctive parts of the WHERE condition
+#
+
+CREATE TABLE t1 (
+ c1 int(11) NOT NULL AUTO_INCREMENT,
+ c2 varchar(1000) DEFAULT NULL,
+ c3 bigint(20) DEFAULT NULL,
+ c4 bigint(20) DEFAULT NULL,
+ PRIMARY KEY (c1)
+);
+
+EXPLAIN EXTENDED
+SELECT join_2.c1
+FROM
+ t1 AS join_0,
+ t1 AS join_1,
+ t1 AS join_2,
+ t1 AS join_3,
+ t1 AS join_4,
+ t1 AS join_5,
+ t1 AS join_6,
+ t1 AS join_7
+WHERE
+ join_0.c1=join_1.c1 AND
+ join_1.c1=join_2.c1 AND
+ join_2.c1=join_3.c1 AND
+ join_3.c1=join_4.c1 AND
+ join_4.c1=join_5.c1 AND
+ join_5.c1=join_6.c1 AND
+ join_6.c1=join_7.c1
+ OR
+ join_0.c2 < '?' AND
+ join_1.c2 < '?' AND
+ join_2.c2 > '?' AND
+ join_2.c2 < '!' AND
+ join_3.c2 > '?' AND
+ join_4.c2 = '?' AND
+ join_5.c2 <> '?' AND
+ join_6.c2 <> '?' AND
+ join_7.c2 >= '?' AND
+ join_0.c1=join_1.c1 AND
+ join_1.c1=join_2.c1 AND
+ join_2.c1=join_3.c1 AND
+ join_3.c1=join_4.c1 AND
+ join_4.c1=join_5.c1 AND
+ join_5.c1=join_6.c1 AND
+ join_6.c1=join_7.c1
+GROUP BY
+ join_3.c1,
+ join_2.c1,
+ join_7.c1,
+ join_1.c1,
+ join_0.c1;
+
+SHOW WARNINGS;
+
+DROP TABLE t1;
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/sp-destruct.test b/mysql-test/t/sp-destruct.test
index 04a581ab45f..56d99c4435c 100644
--- a/mysql-test/t/sp-destruct.test
+++ b/mysql-test/t/sp-destruct.test
@@ -50,6 +50,7 @@ insert into t1 values (0);
flush table mysql.proc;
# Thrashing the .frm file
+--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
--write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
saljdfa
EOF
diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test
index ef9bed8b789..012f2b33225 100644
--- a/mysql-test/t/sp-error.test
+++ b/mysql-test/t/sp-error.test
@@ -1387,6 +1387,21 @@ CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create user 'mysqltest
CREATE FUNCTION bug_13627_f() returns int BEGIN create user 'mysqltest_1'; return 1; END |
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN grant select on t1 to 'mysqltest_1'; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug21975() returns int BEGIN grant select on t1 to 'mysqltest_1'; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN revoke select on t1 from 'mysqltest_1'; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug21975() returns int BEGIN revoke select on t1 from 'mysqltest_1'; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE TRIGGER bug21975 BEFORE INSERT ON t1 FOR EACH ROW BEGIN revoke all privileges on *.* from 'mysqltest_1'; END |
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+CREATE FUNCTION bug21975() returns int BEGIN revoke all privileges on *.* from 'mysqltest_1'; return 1; END |
+
+-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop user 'mysqltest_1'; END |
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
CREATE FUNCTION bug_13627_f() returns int BEGIN drop user 'mysqltest_1'; return 1; END |
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index 46ef6bc6ddd..27e559f4463 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -7494,4 +7494,58 @@ DROP FUNCTION f1;
DROP FUNCTION f2;
DROP TABLE t1;
+#
+# Bug#13675: DATETIME/DATE type in store proc param seems to be converted as
+# varbinary
+#
+
+--echo
+--echo # Bug#13675.
+--echo
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+--echo
+
+CREATE PROCEDURE p1(v DATETIME) CREATE TABLE t1 SELECT v;
+
+CREATE PROCEDURE p2(v INT) CREATE TABLE t1 SELECT v;
+
+--echo
+CALL p1(NOW());
+SHOW CREATE TABLE t1;
+
+--echo
+DROP TABLE t1;
+
+--echo
+CALL p1('text');
+SHOW CREATE TABLE t1;
+
+--echo
+DROP TABLE t1;
+
+--echo
+CALL p2(10);
+SHOW CREATE TABLE t1;
+
+--echo
+DROP TABLE t1;
+
+--echo
+CALL p2('text');
+SHOW CREATE TABLE t1;
+
+--echo
+DROP TABLE t1;
+
+--echo
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test
index 6335ad55606..b5037b469ae 100644
--- a/mysql-test/t/sp_notembedded.test
+++ b/mysql-test/t/sp_notembedded.test
@@ -287,3 +287,68 @@ connection default;
drop user mysqltest_1@localhost;
drop procedure 15298_1;
drop procedure 15298_2;
+
+#
+# Bug#29936 Stored Procedure DML ignores low_priority_updates setting
+#
+
+--disable_warnings
+drop table if exists t1;
+drop procedure if exists p1;
+--enable_warnings
+
+create table t1 (value varchar(15));
+create procedure p1() update t1 set value='updated' where value='old';
+
+# load the procedure into sp cache and execute once
+call p1();
+
+insert into t1 (value) values ("old");
+
+connect (rl_holder, localhost, root,,);
+connect (rl_acquirer, localhost, root,,);
+connect (rl_contender, localhost, root,,);
+connect (rl_wait, localhost, root,,);
+
+connection rl_holder;
+select get_lock('b26162',120);
+
+connection rl_acquirer;
+--send select 'rl_acquirer', value from t1 where get_lock('b26162',120);
+
+# we must wait till this select opens and locks the tables
+connection rl_wait;
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "User lock" and
+ info = "select 'rl_acquirer', value from t1 where get_lock('b26162',120)";
+--source include/wait_condition.inc
+
+connection default;
+set session low_priority_updates=on;
+--send call p1();
+
+connection rl_wait;
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "Locked" and
+ info = "update t1 set value='updated' where value='old'";
+--source include/wait_condition.inc
+
+connection rl_contender;
+select 'rl_contender', value from t1;
+
+connection rl_holder;
+select release_lock('b26162');
+
+connection rl_acquirer;
+--reap
+connection default;
+--reap
+
+disconnect rl_holder;
+disconnect rl_acquirer;
+disconnect rl_wait;
+drop procedure p1;
+drop table t1;
+set session low_priority_updates=default;
diff --git a/mysql-test/t/status.test b/mysql-test/t/status.test
index c16b22c035c..7fd995e70c7 100644
--- a/mysql-test/t/status.test
+++ b/mysql-test/t/status.test
@@ -1,3 +1,6 @@
+# This test requires that --log-output includes 'table', and the general
+# log is on
+
# embedded server causes different stat
-- source include/not_embedded.inc
@@ -8,33 +11,54 @@ connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
flush status;
+
+# Logging to the general query log table (--log-output=table --log) increments
+# Table_locks_immediate with each query, so here Immediate becomes 1
show status like 'Table_lock%';
+# ++Immediate = 2
select * from information_schema.session_status where variable_name like 'Table_lock%';
+
connection con1;
+# ++Immediate = 3
SET SQL_LOG_BIN=0;
--disable_warnings
+# ++Immediate = 4
drop table if exists t1;
--enable_warnings
+# ++Immediate = 5
create table t1(n int) engine=myisam;
+# Immediate + 2 = 7
insert into t1 values(1);
+
connection con2;
+# Immediate + 2 = 9
lock tables t1 read;
+# ++Immediate = 10
unlock tables;
+# Immediate + 2 = 12
lock tables t1 read;
+
connection con1;
+# ++Immediate = 13
let $ID= `select connection_id()`;
+# ++Immediate = 14 (Not +2, because this increments Table_locks_waited)
--send
update t1 set n = 3;
+
connection con2;
# wait for the other query to start executing
let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST where ID = $ID and STATE = "Locked";
+# Immediate = 14 + $wait_condition_reps ($wait_timeout is 0, so no extra select
+# is done inside wait_condition.inc)
--source include/wait_condition.inc
+# ++Immediate = 15 + $wait_condition_reps
unlock tables;
+
connection con1;
reap;
-show status like 'Table_locks_waited%';
-select * from information_schema.session_status where variable_name like 'Table_locks_waited%';
+# ++Immediate = 16 + $wait_condition_reps
+show status like 'Table_locks_waited';
drop table t1;
disconnect con2;
diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test
index c7251040544..9f4634e1e17 100644
--- a/mysql-test/t/trigger.test
+++ b/mysql-test/t/trigger.test
@@ -1146,7 +1146,8 @@ write_file $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
dummy
EOF
chmod 0000 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
---replace_result $MYSQLTEST_VARDIR . master-data// ''
+# Normalize the datadir path; the embedded server doesn't chdir to datadir
+--replace_result $MYSQLTEST_VARDIR . master-data/ ''
--error 1
rename table t1 to t2;
# 't1' should be still there and triggers should work correctly
diff --git a/mysql-test/t/udf.test b/mysql-test/t/udf.test
index 07a4a2d870b..2f1d197cb9e 100644
--- a/mysql-test/t/udf.test
+++ b/mysql-test/t/udf.test
@@ -364,4 +364,40 @@ drop function metaphon;
set GLOBAL query_cache_size=default;
+#
+# Bug #29804 UDF parameters don't contain correct string length
+#
+
+CREATE TABLE const_len_bug (
+ str_const varchar(4000),
+ result1 varchar(4000),
+ result2 varchar(4000)
+);
+
+DELIMITER |;
+CREATE TRIGGER check_const_len_trigger BEFORE INSERT ON const_len_bug FOR EACH ROW BEGIN
+ set NEW.str_const = 'bar';
+ set NEW.result2 = check_const_len(NEW.str_const);
+END |
+
+CREATE PROCEDURE check_const_len_sp (IN str_const VARCHAR(4000))
+BEGIN
+DECLARE result VARCHAR(4000);
+SET result = check_const_len(str_const);
+insert into const_len_bug values(str_const, result, "");
+END |
+DELIMITER ;|
+
+--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
+eval CREATE FUNCTION check_const_len RETURNS string SONAME "$UDF_EXAMPLE_LIB";
+
+CALL check_const_len_sp("foo");
+
+SELECT * from const_len_bug;
+
+DROP FUNCTION check_const_len;
+DROP PROCEDURE check_const_len_sp;
+DROP TRIGGER check_const_len_trigger;
+DROP TABLE const_len_bug;
+
--echo End of 5.0 tests.
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index 87ea995f518..c54c7d13548 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -304,6 +304,7 @@ size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args)
uint minimum_width; /* as yet unimplemented */
uint minimum_width_sign;
uint precision; /* as yet unimplemented for anything but %b */
+ my_bool is_zero_padded;
/*
Store the location of the beginning of a format directive, for the
@@ -337,11 +338,27 @@ size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args)
backtrack= fmt;
fmt++;
+ is_zero_padded= FALSE;
+ minimum_width_sign= 1;
minimum_width= 0;
precision= 0;
- minimum_width_sign= 1;
/* Skip if max size is used (to be compatible with printf) */
- while (*fmt == '-') { fmt++; minimum_width_sign= -1; }
+
+process_flags:
+ switch (*fmt)
+ {
+ case '-':
+ minimum_width_sign= -1; fmt++; goto process_flags;
+ case '0':
+ is_zero_padded= TRUE; fmt++; goto process_flags;
+ case '#':
+ /** @todo Implement "#" conversion flag. */ fmt++; goto process_flags;
+ case ' ':
+ /** @todo Implement " " conversion flag. */ fmt++; goto process_flags;
+ case '+':
+ /** @todo Implement "+" conversion flag. */ fmt++; goto process_flags;
+ }
+
if (*fmt == '*')
{
precision= (int) va_arg(args, int);
@@ -376,7 +393,7 @@ size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args)
{
reg2 char *par = va_arg(args, char *);
size_t length2 = strlen(par);
- /* TODO: implement minimum width and precision */
+ /* TODO: implement precision */
out_length+= length2;
if (my_b_write(info, (uchar*) par, length2))
goto err;
@@ -398,7 +415,22 @@ size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args)
if (*fmt == 'd')
length2= (size_t) (int10_to_str((long) iarg,buff, -10) - buff);
else
- length2= (size_t) (int10_to_str((long) (uint) iarg,buff,10)- buff);
+ length2= (uint) (int10_to_str((long) (uint) iarg,buff,10)- buff);
+
+ /* minimum width padding */
+ if (minimum_width > length2)
+ {
+ char *buffz;
+
+ buffz= my_alloca(minimum_width - length2);
+ if (is_zero_padded)
+ memset(buffz, '0', minimum_width - length2);
+ else
+ memset(buffz, ' ', minimum_width - length2);
+ my_b_write(info, buffz, minimum_width - length2);
+ my_afree(buffz);
+ }
+
out_length+= length2;
if (my_b_write(info, (uchar*) buff, length2))
goto err;
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 8b935c895c8..1ba6e5ac92d 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -47,7 +47,7 @@ pthread_mutexattr_t my_fast_mutexattr;
pthread_mutexattr_t my_errorcheck_mutexattr;
#endif
-#ifdef NPTL_PTHREAD_EXIT_BUG /* see my_pthread.h */
+#ifdef TARGET_OS_LINUX
/*
Dummy thread spawned in my_thread_global_init() below to avoid
@@ -61,7 +61,8 @@ nptl_pthread_exit_hack_handler(void *arg __attribute((unused)))
pthread_exit(0);
return 0;
}
-#endif
+
+#endif /* TARGET_OS_LINUX */
static uint get_thread_lib(void);
@@ -88,7 +89,7 @@ my_bool my_thread_global_init(void)
return 1;
}
-#ifdef NPTL_PTHREAD_EXIT_BUG
+#ifdef TARGET_OS_LINUX
/*
BUG#24507: Race conditions inside current NPTL pthread_exit()
implementation.
@@ -112,7 +113,7 @@ my_bool my_thread_global_init(void)
pthread_create(&dummy_thread,&dummy_thread_attr,
nptl_pthread_exit_hack_handler, NULL);
}
-#endif
+#endif /* TARGET_OS_LINUX */
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
/*
@@ -179,10 +180,17 @@ void my_thread_global_end(void)
&abstime);
if (error == ETIMEDOUT || error == ETIME)
{
+#ifdef HAVE_PTHREAD_KILL
+ /*
+ We shouldn't give an error here, because if we don't have
+ pthread_kill(), programs like mysqld can't ensure that all threads
+ are killed when we enter here.
+ */
if (THR_thread_count)
fprintf(stderr,
"Error in my_thread_global_end(): %d threads didn't exit\n",
THR_thread_count);
+#endif
all_threads_killed= 0;
break;
}
@@ -208,7 +216,7 @@ void my_thread_global_end(void)
if (all_threads_killed)
{
pthread_mutex_destroy(&THR_LOCK_threads);
- pthread_cond_destroy (&THR_COND_threads);
+ pthread_cond_destroy(&THR_COND_threads);
}
#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
pthread_mutex_destroy(&LOCK_localtime_r);
diff --git a/mysys/test_charset.c b/mysys/test_charset.c
index 08154e67863..d867b49304e 100644
--- a/mysys/test_charset.c
+++ b/mysys/test_charset.c
@@ -77,7 +77,7 @@ int main(int argc, char **argv) {
_print_csinfo(cs);
fflush(stdout);
-#define NOT_USED_ANYMORE
+#ifdef NOT_USED_ANYMORE
cs_list = list_charsets(MYF(MY_CS_COMPILED | MY_CS_CONFIG));
printf("LIST OF CHARSETS (compiled + *.conf):\n%s\n", cs_list);
my_free(cs_list,MYF(0));
diff --git a/netware/Makefile.am b/netware/Makefile.am
index b3a1b9377f7..64467a41777 100644
--- a/netware/Makefile.am
+++ b/netware/Makefile.am
@@ -43,10 +43,15 @@ netware_build_files = client/mysql.def client/mysqladmin.def \
storage/myisam/myisampack.def \
storage/myisam/myisam_ftdump.def
+BUILT_SOURCES = link_sources init_db.sql test_db.sql
+CLEANFILES = $(BUILT_SOURCES)
+
+all: $(BUILT_SOURCES)
+
link_sources:
for f in $(netware_build_files); do \
rm -f ../$$f; \
- org=`echo $$f | sed -e 's/.*\/\(.*\)/\1/g'`; \
+ org=`basename $$f`; \
@LN_CP_F@ $(srcdir)/$$org ../$$f; \
done
echo timestamp > link_sources
@@ -94,6 +99,8 @@ EXTRA_DIST= $(BUILT_SOURCES) comp_err.def install_test_db.ncf \
BUILD/mwasmnlm BUILD/mwccnlm BUILD/mwenv BUILD/mwldnlm \
BUILD/nwbootstrap BUILD/openssl.imp BUILD/save-patch
+endif
+
# Build init_db.sql from the files that contain
# the system tables for this version of MySQL plus any commands
@@ -111,9 +118,7 @@ init_db.sql: $(top_srcdir)/scripts/mysql_system_tables.sql \
test_db.sql: init_db.sql $(top_srcdir)/scripts/mysql_test_data_timezone.sql
@echo "Building $@";
@cat init_db.sql \
- $(top_srcdir)/scripts/mysql_test_data_timezone.sql >> $@;
-
-endif
+ $(top_srcdir)/scripts/mysql_test_data_timezone.sql > $@;
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/netware/isamchk.def b/netware/isamchk.def
deleted file mode 100644
index 8ae2c0ca96c..00000000000
--- a/netware/isamchk.def
+++ /dev/null
@@ -1,12 +0,0 @@
-#------------------------------------------------------------------------------
-# ISAM Check
-#------------------------------------------------------------------------------
-MODULE libc.nlm
-SCREENNAME "MySQL ISAM Table Check Tool"
-COPYRIGHT "(c) 2003-2005 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
-DESCRIPTION "MySQL ISAM Table Check Tool"
-VERSION 4, 0
-STACKSIZE 131072
-XDCDATA ../netware/mysql.xdc
-#DEBUG
-
diff --git a/netware/isamlog.def b/netware/isamlog.def
deleted file mode 100644
index 777d73a7835..00000000000
--- a/netware/isamlog.def
+++ /dev/null
@@ -1,11 +0,0 @@
-#------------------------------------------------------------------------------
-# ISAM Log
-#------------------------------------------------------------------------------
-MODULE libc.nlm
-COPYRIGHT "(c) 2003-2005 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
-DESCRIPTION "MySQL ISAM Table Log Tool"
-VERSION 4, 0
-STACKSIZE 131072
-XDCDATA ../netware/mysql.xdc
-#DEBUG
-
diff --git a/netware/pack_isam.def b/netware/pack_isam.def
deleted file mode 100644
index 514b57b04bd..00000000000
--- a/netware/pack_isam.def
+++ /dev/null
@@ -1,13 +0,0 @@
-#------------------------------------------------------------------------------
-# Pack ISAM
-#------------------------------------------------------------------------------
-MODULE libc.nlm
-SCREENNAME "MySQL ISAM Table Pack Tool"
-COPYRIGHT "(c) 2003-2005 Novell, Inc. Portions (c) 2003 MySQL AB. All Rights Reserved."
-DESCRIPTION "MySQL ISAM Table Pack Tool"
-SCREENNAME "MySQL ISAM Table Pack Tool"
-VERSION 4, 0
-STACKSIZE 131072
-XDCDATA ../netware/mysql.xdc
-#DEBUG
-
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index b6404a33cc4..8e670f0e6ba 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -212,7 +212,7 @@ BIN_FILES="extra/comp_err$BS extra/replace$BS extra/perror$BS \
if [ $BASE_SYSTEM = "netware" ] ; then
BIN_FILES="$BIN_FILES \
netware/mysqld_safe$BS netware/mysql_install_db$BS \
- netware/init_db.sql netware/test_db.sql$BS \
+ netware/init_db.sql netware/test_db.sql \
netware/mysqlhotcopy$BS netware/libmysql$BS netware/init_secure_db.sql \
";
# For all other platforms:
diff --git a/scripts/mysql_system_tables.sql b/scripts/mysql_system_tables.sql
index cd0882e3af4..f7b23e4e7ae 100644
--- a/scripts/mysql_system_tables.sql
+++ b/scripts/mysql_system_tables.sql
@@ -2,6 +2,7 @@
-- The system tables of MySQL Server
--
+set sql_mode='';
set storage_engine=myisam;
CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges';
diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh
index 61cd59457d1..6ad5c77b954 100644
--- a/scripts/mysqlhotcopy.sh
+++ b/scripts/mysqlhotcopy.sh
@@ -821,30 +821,14 @@ sub get_raid_dirs {
sub get_list_of_tables {
my ( $db ) = @_;
- # "use database" cannot cope with database names containing spaces
- # so create a new connection
-
- my $dbh = DBI->connect("dbi:mysql:${db}${dsn};mysql_read_default_group=mysqlhotcopy",
- $opt{user}, $opt{password},
- {
- RaiseError => 1,
- PrintError => 0,
- AutoCommit => 1,
- });
-
- my @dbh_tables = eval { $dbh->tables() };
-
- ## Remove quotes around table names
- my $quote = $dbh->get_info(29); # SQL_IDENTIFIER_QUOTE_CHAR
- if ($quote) {
- foreach (@dbh_tables) {
- s/^$quote(.*)$quote$/$1/;
- s/$quote$quote/$quote/g;
- }
- }
-
- $dbh->disconnect();
- return @dbh_tables;
+ my $tables =
+ eval {
+ $dbh->selectall_arrayref('SHOW TABLES FROM ' .
+ $dbh->quote_identifier($db))
+ } || [];
+ warn "Unable to retrieve list of tables in $db: $@" if $@;
+
+ return (map { $_->[0] } @$tables);
}
sub quote_names {
diff --git a/sql/event_data_objects.cc b/sql/event_data_objects.cc
index 2ab77ad6b11..787b04c12c6 100644
--- a/sql/event_data_objects.cc
+++ b/sql/event_data_objects.cc
@@ -20,6 +20,10 @@
#include "event_db_repository.h"
#include "sp_head.h"
+/**
+ @addtogroup Event_Scheduler
+ @{
+*/
#define EVEX_MAX_INTERVAL_VALUE 1000000000L
@@ -2082,3 +2086,7 @@ event_basic_identifier_equal(LEX_STRING db, LEX_STRING name, Event_basic *b)
return !sortcmp_lex_string(name, b->name, system_charset_info) &&
!sortcmp_lex_string(db, b->dbname, system_charset_info);
}
+
+/**
+ @} (End of group Event_Scheduler)
+*/
diff --git a/sql/event_data_objects.h b/sql/event_data_objects.h
index a8e7d1720ca..7a49d1597d6 100644
--- a/sql/event_data_objects.h
+++ b/sql/event_data_objects.h
@@ -15,6 +15,12 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/**
+ @addtogroup Event_Scheduler
+ @{
+
+ @file event_data_objects.h
+*/
#define EVEX_GET_FIELD_FAILED -2
#define EVEX_BAD_PARAMS -5
@@ -280,5 +286,8 @@ event_basic_db_equal(LEX_STRING db, Event_basic *et);
bool
event_basic_identifier_equal(LEX_STRING db, LEX_STRING name, Event_basic *b);
+/**
+ @} (End of group Event_Scheduler)
+*/
#endif /* _EVENT_DATA_OBJECTS_H_ */
diff --git a/sql/event_db_repository.cc b/sql/event_db_repository.cc
index 48477b1ba46..705bd8b2704 100644
--- a/sql/event_db_repository.cc
+++ b/sql/event_db_repository.cc
@@ -20,6 +20,11 @@
#include "events.h"
#include "sql_show.h"
+/**
+ @addtogroup Event_Scheduler
+ @{
+*/
+
static
const TABLE_FIELD_W_TYPE event_table_fields[ET_FIELD_COUNT] =
{
@@ -557,7 +562,7 @@ Event_db_repository::open_event_table(THD *thd, enum thr_lock_type lock_type,
only creates a record on disk.
@pre The thread handle has no open tables.
- @param[in,out] THD
+ @param[in,out] thd THD
@param[in] parse_data Parsed event definition
@param[in] create_if_not TRUE if IF NOT EXISTS clause was provided
to CREATE EVENT statement
@@ -658,7 +663,7 @@ end:
@param[in,out] thd thread handle
@param[in] parse_data parsed event definition
- @paran[in[ new_dbname not NULL if ALTER EVENT RENAME
+ @param[in] new_dbname not NULL if ALTER EVENT RENAME
points at a new database name
@param[in] new_name not NULL if ALTER EVENT RENAME
points at a new event name
@@ -813,7 +818,7 @@ end:
@retval FALSE an event with such db/name key exists
- @reval TRUE no record found or an error occured.
+ @retval TRUE no record found or an error occured.
*/
bool
@@ -1113,3 +1118,7 @@ Event_db_repository::check_system_tables(THD *thd)
DBUG_RETURN(test(ret));
}
+
+/**
+ @} (End of group Event_Scheduler)
+*/
diff --git a/sql/event_db_repository.h b/sql/event_db_repository.h
index b60d2ea7afc..ef778407d1e 100644
--- a/sql/event_db_repository.h
+++ b/sql/event_db_repository.h
@@ -15,8 +15,14 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/*
- @file
+/**
+ @addtogroup Event_Scheduler
+ @{
+
+ @file event_db_repository.h
+
+ Data Dictionary related operations of Event Scheduler.
+
This is a private header file of Events module. Please do not include it
directly. All public declarations of Events module should be stored in
events.h and event_data_objects.h.
@@ -119,4 +125,7 @@ private:
void operator=(Event_db_repository &);
};
+/**
+ @} (End of group Event_Scheduler)
+*/
#endif /* _EVENT_DB_REPOSITORY_H_ */
diff --git a/sql/event_queue.cc b/sql/event_queue.cc
index e611432c6a2..898fc206c34 100644
--- a/sql/event_queue.cc
+++ b/sql/event_queue.cc
@@ -17,6 +17,10 @@
#include "event_queue.h"
#include "event_data_objects.h"
+/**
+ @addtogroup Event_Scheduler
+ @{
+*/
#define EVENT_QUEUE_INITIAL_SIZE 30
#define EVENT_QUEUE_EXTENT 30
@@ -750,3 +754,7 @@ Event_queue::dump_internal_status()
DBUG_VOID_RETURN;
}
+
+/**
+ @} (End of group Event_Scheduler)
+*/
diff --git a/sql/event_queue.h b/sql/event_queue.h
index ac4a4f2bfd7..2870ecb4d0b 100644
--- a/sql/event_queue.h
+++ b/sql/event_queue.h
@@ -15,12 +15,26 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/**
+
+ @addtogroup Event_Scheduler
+ @{
+
+ @file event_queue.h
+
+ Queue of events awaiting execution.
+*/
+
class Event_basic;
class Event_queue_element;
class Event_queue_element_for_exec;
class THD;
+/**
+ Queue of active events awaiting execution.
+*/
+
class Event_queue
{
public:
@@ -105,5 +119,8 @@ private:
bool mutex_queue_data_attempting_lock;
bool waiting_on_cond;
};
+/**
+ @} (End of group Event_Scheduler)
+*/
#endif /* _EVENT_QUEUE_H_ */
diff --git a/sql/event_scheduler.cc b/sql/event_scheduler.cc
index 3092521fd4c..b03b51f1134 100644
--- a/sql/event_scheduler.cc
+++ b/sql/event_scheduler.cc
@@ -20,6 +20,11 @@
#include "event_queue.h"
#include "event_db_repository.h"
+/**
+ @addtogroup Event_Scheduler
+ @{
+*/
+
#ifdef __GNUC__
#if __GNUC__ >= 2
#define SCHED_FUNC __FUNCTION__
@@ -790,3 +795,7 @@ Event_scheduler::dump_internal_status()
DBUG_VOID_RETURN;
}
+
+/**
+ @} (End of group Event_Scheduler)
+*/
diff --git a/sql/event_scheduler.h b/sql/event_scheduler.h
index eba66c68d42..0be93a65d33 100644
--- a/sql/event_scheduler.h
+++ b/sql/event_scheduler.h
@@ -16,10 +16,18 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/**
+ @addtogroup Event_Scheduler
+ @{
+*/
+/**
@file
- This file is internal to Events module. Please do not include it directly.
- All public declarations of Events module are in events.h and
- event_data_objects.h.
+
+ Declarations of the scheduler thread class
+ and related functionality.
+
+ This file is internal to Event_Scheduler module. Please do not
+ include it directly. All public declarations of Event_Scheduler
+ module are in events.h and event_data_objects.h.
*/
@@ -140,4 +148,8 @@ private:
void operator=(Event_scheduler &);
};
+/**
+ @} (End of group Event_Scheduler)
+*/
+
#endif /* _EVENT_SCHEDULER_H_ */
diff --git a/sql/events.cc b/sql/events.cc
index 8d32580816f..5246bccc388 100644
--- a/sql/events.cc
+++ b/sql/events.cc
@@ -21,6 +21,11 @@
#include "event_scheduler.h"
#include "sp_head.h" // for Stored_program_creation_ctx
+/**
+ @addtogroup Event_Scheduler
+ @{
+*/
+
/*
TODO list :
- CREATE EVENT should not go into binary log! Does it now? The SQL statements
@@ -790,8 +795,7 @@ Events::show_create_event(THD *thd, LEX_STRING dbname, LEX_STRING name)
Check access rights and fill INFORMATION_SCHEMA.events table.
@param[in,out] thd Thread context
- @param[in] table The temporary table to fill.
- cond Unused
+ @param[in] tables The temporary table to fill.
In MySQL INFORMATION_SCHEMA tables are temporary tables that are
created and filled on demand. In this function, we fill
@@ -1187,3 +1191,7 @@ end:
DBUG_RETURN(ret);
}
+
+/**
+ @} (End of group Event_Scheduler)
+*/
diff --git a/sql/events.h b/sql/events.h
index 1b99b072fd7..2bc87517748 100644
--- a/sql/events.h
+++ b/sql/events.h
@@ -15,9 +15,14 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/*
- @file
- A public interface of Events Scheduler module.
+/**
+ @defgroup Event_Scheduler Event Scheduler
+ @ingroup Runtime_Environment
+ @{
+
+ @file events.h
+
+ A public interface of Events_Scheduler module.
*/
class Event_parse_data;
@@ -42,7 +47,7 @@ int
sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs);
/**
- @class Events -- a facade to the functionality of the Event Scheduler.
+ @brief A facade to the functionality of the Event Scheduler.
Every public operation against the scheduler has to be executed via the
interface provided by a static method of this class. No instance of this
@@ -152,5 +157,8 @@ private:
void operator=(Events &);
};
+/**
+ @} (end of group Event Scheduler)
+*/
#endif /* _EVENT_H_ */
diff --git a/sql/field.cc b/sql/field.cc
index 1b01d626512..fa93454c757 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -7796,10 +7796,8 @@ uchar *Field_blob::pack(uchar *to, const uchar *from, uint max_length)
uint32 length=get_length(); // Length of from string
if (length > max_length)
{
- ptr=to;
length=max_length;
- store_length(length); // Store max length
- ptr= (uchar*) from;
+ store_length(to,packlength,length,TRUE);
}
else
memcpy(to,from,packlength); // Copy length
@@ -7824,7 +7822,7 @@ uchar *Field_blob::pack(uchar *to, const uchar *from, uint max_length)
@param to Destination of the data
@param from Source of the data
- @param param_data <not used>
+ @param param_data not used
@return New pointer into memory based on from + length of the data
*/
@@ -7838,8 +7836,8 @@ const uchar *Field_blob::unpack(uchar *to,
const uchar *Field_blob::unpack(uchar *to, const uchar *from)
{
- memcpy(to,from,packlength);
uint32 length=get_length(from);
+ memcpy(to,from,packlength);
from+=packlength;
if (length)
memcpy_fixed(to+packlength, &from, sizeof(from));
diff --git a/sql/field.h b/sql/field.h
index f784ed82ecc..8aad6783291 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1803,7 +1803,12 @@ class Send_field {
*/
class Copy_field :public Sql_alloc {
- void (*get_copy_func(Field *to,Field *from))(Copy_field *);
+ /**
+ Convenience definition of a copy function returned by
+ get_copy_func.
+ */
+ typedef void Copy_func(Copy_field*);
+ Copy_func *get_copy_func(Field *to, Field *from);
public:
uchar *from_ptr,*to_ptr;
uchar *from_null_ptr,*to_null_ptr;
diff --git a/sql/field_conv.cc b/sql/field_conv.cc
index 33c7897c3db..16e27bb6cab 100644
--- a/sql/field_conv.cc
+++ b/sql/field_conv.cc
@@ -620,7 +620,8 @@ void Copy_field::set(Field *to,Field *from,bool save)
}
-void (*Copy_field::get_copy_func(Field *to,Field *from))(Copy_field*)
+Copy_field::Copy_func *
+Copy_field::get_copy_func(Field *to,Field *from)
{
bool compatible_db_low_byte_first= (to->table->s->db_low_byte_first ==
from->table->s->db_low_byte_first);
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 68295509e78..5f36da4da8e 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -2812,11 +2812,17 @@ int ha_ndbcluster::write_row(uchar *record)
if (unlikely(m_slow_path))
{
+ /*
+ ignore TNTO_NO_LOGGING for slave thd. It is used to indicate
+ log-slave-updates option. This is instead handled in the
+ injector thread, by looking explicitly at the
+ opt_log_slave_updates flag.
+ */
Thd_ndb *thd_ndb= get_thd_ndb(thd);
- if (thd_ndb->trans_options & TNTO_NO_LOGGING)
- op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
- else if (thd->slave_thread)
+ if (thd->slave_thread)
op->setAnyValue(thd->server_id);
+ else if (thd_ndb->trans_options & TNTO_NO_LOGGING)
+ op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
}
m_rows_changed++;
@@ -3102,11 +3108,17 @@ int ha_ndbcluster::update_row(const uchar *old_data, uchar *new_data)
if (unlikely(m_slow_path))
{
+ /*
+ ignore TNTO_NO_LOGGING for slave thd. It is used to indicate
+ log-slave-updates option. This is instead handled in the
+ injector thread, by looking explicitly at the
+ opt_log_slave_updates flag.
+ */
Thd_ndb *thd_ndb= get_thd_ndb(thd);
- if (thd_ndb->trans_options & TNTO_NO_LOGGING)
- op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
- else if (thd->slave_thread)
+ if (thd->slave_thread)
op->setAnyValue(thd->server_id);
+ else if (thd_ndb->trans_options & TNTO_NO_LOGGING)
+ op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
}
/*
Execute update operation if we are not doing a scan for update
@@ -3170,13 +3182,19 @@ int ha_ndbcluster::delete_row(const uchar *record)
if (unlikely(m_slow_path))
{
+ /*
+ ignore TNTO_NO_LOGGING for slave thd. It is used to indicate
+ log-slave-updates option. This is instead handled in the
+ injector thread, by looking explicitly at the
+ opt_log_slave_updates flag.
+ */
Thd_ndb *thd_ndb= get_thd_ndb(thd);
- if (thd_ndb->trans_options & TNTO_NO_LOGGING)
- ((NdbOperation *)trans->getLastDefinedOperation())->
- setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
- else if (thd->slave_thread)
+ if (thd->slave_thread)
((NdbOperation *)trans->getLastDefinedOperation())->
setAnyValue(thd->server_id);
+ else if (thd_ndb->trans_options & TNTO_NO_LOGGING)
+ ((NdbOperation *)trans->getLastDefinedOperation())->
+ setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
}
if (!(m_primary_key_update || m_delete_cannot_batch))
// If deleting from cursor, NoCommit will be handled in next_result
@@ -3210,11 +3228,17 @@ int ha_ndbcluster::delete_row(const uchar *record)
if (unlikely(m_slow_path))
{
+ /*
+ ignore TNTO_NO_LOGGING for slave thd. It is used to indicate
+ log-slave-updates option. This is instead handled in the
+ injector thread, by looking explicitly at the
+ opt_log_slave_updates flag.
+ */
Thd_ndb *thd_ndb= get_thd_ndb(thd);
- if (thd_ndb->trans_options & TNTO_NO_LOGGING)
- op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
- else if (thd->slave_thread)
+ if (thd->slave_thread)
op->setAnyValue(thd->server_id);
+ else if (thd_ndb->trans_options & TNTO_NO_LOGGING)
+ op->setAnyValue(NDB_ANYVALUE_FOR_NOLOGGING);
}
}
diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc
index c91faac388f..468adba0aa0 100644
--- a/sql/ha_ndbcluster_binlog.cc
+++ b/sql/ha_ndbcluster_binlog.cc
@@ -114,6 +114,9 @@ NDB_SHARE *ndb_apply_status_share= 0;
NDB_SHARE *ndb_schema_share= 0;
pthread_mutex_t ndb_schema_share_mutex;
+extern my_bool opt_log_slave_updates;
+static my_bool g_ndb_log_slave_updates;
+
/* Schema object distribution handling */
HASH ndb_schema_objects;
typedef struct st_ndb_schema_object {
@@ -3296,6 +3299,14 @@ ndb_binlog_thread_handle_data_event(Ndb *ndb, NdbEventOperation *pOp,
originating_server_id);
return 0;
}
+ else if (!g_ndb_log_slave_updates)
+ {
+ /*
+ This event comes from a slave applier since it has an originating
+ server id set. Since option to log slave updates is not set, skip it.
+ */
+ return 0;
+ }
TABLE *table= share->table;
DBUG_ASSERT(trans.good());
@@ -3942,6 +3953,8 @@ restart:
! IS_NDB_BLOB_PREFIX(pOp->getEvent()->getTable()->getName()));
DBUG_ASSERT(gci <= ndb_latest_received_binlog_epoch);
+ /* initialize some variables for this epoch */
+ g_ndb_log_slave_updates= opt_log_slave_updates;
i_ndb->
setReportThreshEventGCISlip(ndb_report_thresh_binlog_epoch_slip);
i_ndb->setReportThreshEventFreeMem(ndb_report_thresh_binlog_mem_usage);
diff --git a/sql/ha_ndbcluster_binlog.h b/sql/ha_ndbcluster_binlog.h
index b5b8d0d9745..53852028f08 100644
--- a/sql/ha_ndbcluster_binlog.h
+++ b/sql/ha_ndbcluster_binlog.h
@@ -216,10 +216,12 @@ inline void free_share(NDB_SHARE **share, bool have_lock= FALSE)
inline
Thd_ndb *
-get_thd_ndb(THD *thd) { return (Thd_ndb *) thd->ha_data[ndbcluster_hton->slot]; }
+get_thd_ndb(THD *thd)
+{ return (Thd_ndb *) thd_get_ha_data(thd, ndbcluster_hton); }
inline
void
-set_thd_ndb(THD *thd, Thd_ndb *thd_ndb) { thd->ha_data[ndbcluster_hton->slot]= thd_ndb; }
+set_thd_ndb(THD *thd, Thd_ndb *thd_ndb)
+{ thd_set_ha_data(thd, ndbcluster_hton, thd_ndb); }
Ndb* check_ndb_in_thd(THD* thd);
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index 6521be1cb9a..42cbaa1cdb0 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -2676,6 +2676,7 @@ int ha_partition::write_row(uchar * buf)
uint32 part_id;
int error;
longlong func_value;
+ bool autoincrement_lock= false;
#ifdef NOT_NEEDED
uchar *rec0= m_rec0;
#endif
@@ -2691,7 +2692,21 @@ int ha_partition::write_row(uchar * buf)
or a new row, then update the auto_increment value in the record.
*/
if (table->next_number_field && buf == table->record[0])
+ {
+ /*
+ Some engines (InnoDB for example) can change autoincrement
+ counter only after 'table->write_row' operation.
+ So if another thread gets inside the ha_partition::write_row
+ before it is complete, it gets same auto_increment value,
+ which means DUP_KEY error (bug #27405)
+ Here we separate the access using table_share->mutex, and
+ use autoincrement_lock variable to avoid unnecessary locks.
+ Probably not an ideal solution.
+ */
+ autoincrement_lock= true;
+ pthread_mutex_lock(&table_share->mutex);
update_auto_increment();
+ }
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
#ifdef NOT_NEEDED
@@ -2712,11 +2727,15 @@ int ha_partition::write_row(uchar * buf)
if (unlikely(error))
{
m_part_info->err_value= func_value;
- DBUG_RETURN(error);
+ goto exit;
}
m_last_part= part_id;
DBUG_PRINT("info", ("Insert in partition %d", part_id));
- DBUG_RETURN(m_file[part_id]->write_row(buf));
+ error= m_file[part_id]->write_row(buf);
+exit:
+ if (autoincrement_lock)
+ pthread_mutex_unlock(&table_share->mutex);
+ DBUG_RETURN(error);
}
@@ -3216,9 +3235,14 @@ end_dont_reset_start_part:
void ha_partition::position(const uchar *record)
{
- handler *file= m_file[m_last_part];
+ handler *file;
DBUG_ENTER("ha_partition::position");
+ if (unlikely(get_part_for_delete(record, m_rec0, m_part_info, &m_last_part)))
+ m_last_part= 0;
+
+ file= m_file[m_last_part];
+
file->position(record);
int2store(ref, m_last_part);
memcpy((ref + PARTITION_BYTES_IN_POS), file->ref,
@@ -3233,6 +3257,14 @@ void ha_partition::position(const uchar *record)
DBUG_VOID_RETURN;
}
+
+void ha_partition::column_bitmaps_signal()
+{
+ handler::column_bitmaps_signal();
+ bitmap_union(table->read_set, &m_part_info->full_part_field_set);
+}
+
+
/*
Read row using position
@@ -5445,6 +5477,7 @@ void ha_partition::get_auto_increment(ulonglong offset, ulonglong increment,
for (pos=m_file, end= m_file+ m_tot_parts; pos != end ; pos++)
{
+ first_value_part= *first_value;
(*pos)->get_auto_increment(offset, increment, nb_desired_values,
&first_value_part, &nb_reserved_values_part);
if (first_value_part == ~(ulonglong)(0)) // error in one partition
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index 555f7a72740..434d90a4487 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -449,6 +449,7 @@ private:
int handle_ordered_next(uchar * buf, bool next_same);
int handle_ordered_prev(uchar * buf);
void return_top_record(uchar * buf);
+ void column_bitmaps_signal();
public:
/*
-------------------------------------------------------------------------
diff --git a/sql/handler.cc b/sql/handler.cc
index dbe7f6727f7..75c3a64bc27 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -561,7 +561,7 @@ static my_bool closecon_handlerton(THD *thd, plugin_ref plugin,
be rolled back already
*/
if (hton->state == SHOW_OPTION_YES && hton->close_connection &&
- thd->ha_data[hton->slot])
+ thd_get_ha_data(thd, hton))
hton->close_connection(hton, thd);
return FALSE;
}
@@ -1509,7 +1509,7 @@ void handler::ha_statistic_increment(ulong SSV::*offset) const
void **handler::ha_data(THD *thd) const
{
- return (void **) thd->ha_data + ht->slot;
+ return thd_ha_data(thd, ht);
}
THD *handler::ha_thd(void) const
@@ -3184,7 +3184,8 @@ int handler::read_multi_range_next(KEY_MULTI_RANGE **found_range_p)
read_range_first()
start_key Start key. Is 0 if no min range
end_key End key. Is 0 if no max range
- eq_range_arg Set to 1 if start_key == end_key
+ eq_range_arg Set to 1 if start_key == end_key and the range endpoints
+ will not change during query execution.
sorted Set to 1 if result should be sorted per key
NOTES
diff --git a/sql/item.cc b/sql/item.cc
index 2e68e96d518..d98a37e3c32 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -1801,6 +1801,8 @@ void Item_field::set_field(Field *field_par)
unsigned_flag=test(field_par->flags & UNSIGNED_FLAG);
collation.set(field_par->charset(), field_par->derivation());
fixed= 1;
+ if (field->table->s->tmp_table == SYSTEM_TMP_TABLE)
+ any_privileges= 0;
}
@@ -2398,7 +2400,7 @@ default_set_param_func(Item_param *param,
}
-Item_param::Item_param(unsigned pos_in_query_arg) :
+Item_param::Item_param(uint pos_in_query_arg) :
strict_type(FALSE),
state(NO_VALUE),
item_result_type(STRING_RESULT),
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 35ecfdb0f2c..40d0c2dfe91 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -1424,6 +1424,7 @@ public:
Item_cond(List<Item> &nlist)
:Item_bool_func(), list(nlist), abort_on_null(0) {}
bool add(Item *item) { return list.push_back(item); }
+ bool add_at_head(Item *item) { return list.push_front(item); }
void add_at_head(List<Item> *nlist) { list.prepand(nlist); }
bool fix_fields(THD *, Item **ref);
@@ -1569,7 +1570,6 @@ public:
the current and level */
COND_EQUAL()
{
- max_members= 0;
upper_levels= 0;
}
};
@@ -1617,6 +1617,15 @@ public:
Item *neg_transformer(THD *thd);
};
+inline bool is_cond_and(Item *item)
+{
+ if (item->type() != Item::COND_ITEM)
+ return FALSE;
+
+ Item_cond *cond_item= (Item_cond*) item;
+ return (cond_item->functype() == Item_func::COND_AND_FUNC);
+}
+
class Item_cond_or :public Item_cond
{
public:
@@ -1638,6 +1647,14 @@ public:
Item *neg_transformer(THD *thd);
};
+inline bool is_cond_or(Item *item)
+{
+ if (item->type() != Item::COND_ITEM)
+ return FALSE;
+
+ Item_cond *cond_item= (Item_cond*) item;
+ return (cond_item->functype() == Item_func::COND_OR_FUNC);
+}
/*
XOR is Item_cond, not an Item_int_func because we could like to
diff --git a/sql/item_create.cc b/sql/item_create.cc
index fa15b992e5c..03424da80a8 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -37,7 +37,7 @@
class Create_native_func : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
Builder method, with no arguments.
@@ -46,7 +46,7 @@ public:
@param item_list The function parameters, none of which are named
@return An item representing the function call
*/
- virtual Item* create_native(THD *thd, LEX_STRING name,
+ virtual Item *create_native(THD *thd, LEX_STRING name,
List<Item> *item_list) = 0;
protected:
@@ -64,14 +64,14 @@ protected:
class Create_func_arg0 : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
Builder method, with no arguments.
@param thd The current thread
@return An item representing the function call
*/
- virtual Item* create(THD *thd) = 0;
+ virtual Item *create(THD *thd) = 0;
protected:
/** Constructor. */
@@ -88,7 +88,7 @@ protected:
class Create_func_arg1 : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
Builder method, with one argument.
@@ -96,7 +96,7 @@ public:
@param arg1 The first argument of the function
@return An item representing the function call
*/
- virtual Item* create(THD *thd, Item *arg1) = 0;
+ virtual Item *create(THD *thd, Item *arg1) = 0;
protected:
/** Constructor. */
@@ -113,7 +113,7 @@ protected:
class Create_func_arg2 : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
Builder method, with two arguments.
@@ -122,7 +122,7 @@ public:
@param arg2 The second argument of the function
@return An item representing the function call
*/
- virtual Item* create(THD *thd, Item *arg1, Item *arg2) = 0;
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2) = 0;
protected:
/** Constructor. */
@@ -139,7 +139,7 @@ protected:
class Create_func_arg3 : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
Builder method, with three arguments.
@@ -149,7 +149,7 @@ public:
@param arg3 The third argument of the function
@return An item representing the function call
*/
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3) = 0;
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3) = 0;
protected:
/** Constructor. */
@@ -166,7 +166,7 @@ protected:
class Create_sp_func : public Create_qfunc
{
public:
- virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name,
+ virtual Item *create(THD *thd, LEX_STRING db, LEX_STRING name,
bool use_explicit_name, List<Item> *item_list);
static Create_sp_func s_singleton;
@@ -189,7 +189,7 @@ protected:
class Create_func_no_geom : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/** Singleton. */
static Create_func_no_geom s_singleton;
@@ -212,7 +212,7 @@ protected:
class Create_func_abs : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_abs s_singleton;
@@ -225,7 +225,7 @@ protected:
class Create_func_acos : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_acos s_singleton;
@@ -238,7 +238,7 @@ protected:
class Create_func_addtime : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_addtime s_singleton;
@@ -251,7 +251,7 @@ protected:
class Create_func_aes_encrypt : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_aes_encrypt s_singleton;
@@ -264,7 +264,7 @@ protected:
class Create_func_aes_decrypt : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_aes_decrypt s_singleton;
@@ -278,7 +278,7 @@ protected:
class Create_func_area : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_area s_singleton;
@@ -293,7 +293,7 @@ protected:
class Create_func_as_wkb : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_as_wkb s_singleton;
@@ -308,7 +308,7 @@ protected:
class Create_func_as_wkt : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_as_wkt s_singleton;
@@ -322,7 +322,7 @@ protected:
class Create_func_asin : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_asin s_singleton;
@@ -335,7 +335,7 @@ protected:
class Create_func_atan : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_atan s_singleton;
@@ -348,7 +348,7 @@ protected:
class Create_func_benchmark : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_benchmark s_singleton;
@@ -361,7 +361,7 @@ protected:
class Create_func_bin : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_bin s_singleton;
@@ -374,7 +374,7 @@ protected:
class Create_func_bit_count : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_bit_count s_singleton;
@@ -387,7 +387,7 @@ protected:
class Create_func_bit_length : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_bit_length s_singleton;
@@ -400,7 +400,7 @@ protected:
class Create_func_ceiling : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_ceiling s_singleton;
@@ -414,7 +414,7 @@ protected:
class Create_func_centroid : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_centroid s_singleton;
@@ -428,7 +428,7 @@ protected:
class Create_func_char_length : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_char_length s_singleton;
@@ -441,7 +441,7 @@ protected:
class Create_func_coercibility : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_coercibility s_singleton;
@@ -454,7 +454,7 @@ protected:
class Create_func_compress : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_compress s_singleton;
@@ -467,7 +467,7 @@ protected:
class Create_func_concat : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_concat s_singleton;
@@ -480,7 +480,7 @@ protected:
class Create_func_concat_ws : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_concat_ws s_singleton;
@@ -493,7 +493,7 @@ protected:
class Create_func_connection_id : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_connection_id s_singleton;
@@ -507,7 +507,7 @@ protected:
class Create_func_contains : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_contains s_singleton;
@@ -521,7 +521,7 @@ protected:
class Create_func_conv : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_conv s_singleton;
@@ -534,7 +534,7 @@ protected:
class Create_func_convert_tz : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_convert_tz s_singleton;
@@ -547,7 +547,7 @@ protected:
class Create_func_cos : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_cos s_singleton;
@@ -560,7 +560,7 @@ protected:
class Create_func_cot : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_cot s_singleton;
@@ -573,7 +573,7 @@ protected:
class Create_func_crc32 : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_crc32 s_singleton;
@@ -587,7 +587,7 @@ protected:
class Create_func_crosses : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_crosses s_singleton;
@@ -601,7 +601,7 @@ protected:
class Create_func_date_format : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_date_format s_singleton;
@@ -614,7 +614,7 @@ protected:
class Create_func_datediff : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_datediff s_singleton;
@@ -627,7 +627,7 @@ protected:
class Create_func_dayname : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_dayname s_singleton;
@@ -640,7 +640,7 @@ protected:
class Create_func_dayofmonth : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_dayofmonth s_singleton;
@@ -653,7 +653,7 @@ protected:
class Create_func_dayofweek : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_dayofweek s_singleton;
@@ -666,7 +666,7 @@ protected:
class Create_func_dayofyear : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_dayofyear s_singleton;
@@ -679,7 +679,7 @@ protected:
class Create_func_decode : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_decode s_singleton;
@@ -692,7 +692,7 @@ protected:
class Create_func_degrees : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_degrees s_singleton;
@@ -705,7 +705,7 @@ protected:
class Create_func_des_decrypt : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_des_decrypt s_singleton;
@@ -718,7 +718,7 @@ protected:
class Create_func_des_encrypt : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_des_encrypt s_singleton;
@@ -732,7 +732,7 @@ protected:
class Create_func_dimension : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_dimension s_singleton;
@@ -747,7 +747,7 @@ protected:
class Create_func_disjoint : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_disjoint s_singleton;
@@ -761,7 +761,7 @@ protected:
class Create_func_elt : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_elt s_singleton;
@@ -774,7 +774,7 @@ protected:
class Create_func_encode : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_encode s_singleton;
@@ -787,7 +787,7 @@ protected:
class Create_func_encrypt : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_encrypt s_singleton;
@@ -801,7 +801,7 @@ protected:
class Create_func_endpoint : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_endpoint s_singleton;
@@ -816,7 +816,7 @@ protected:
class Create_func_envelope : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_envelope s_singleton;
@@ -831,7 +831,7 @@ protected:
class Create_func_equals : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_equals s_singleton;
@@ -845,7 +845,7 @@ protected:
class Create_func_exp : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_exp s_singleton;
@@ -858,7 +858,7 @@ protected:
class Create_func_export_set : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_export_set s_singleton;
@@ -872,7 +872,7 @@ protected:
class Create_func_exteriorring : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_exteriorring s_singleton;
@@ -886,7 +886,7 @@ protected:
class Create_func_field : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_field s_singleton;
@@ -899,7 +899,7 @@ protected:
class Create_func_find_in_set : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_find_in_set s_singleton;
@@ -912,7 +912,7 @@ protected:
class Create_func_floor : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_floor s_singleton;
@@ -925,7 +925,7 @@ protected:
class Create_func_format : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_format s_singleton;
@@ -938,7 +938,7 @@ protected:
class Create_func_found_rows : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_found_rows s_singleton;
@@ -951,7 +951,7 @@ protected:
class Create_func_from_days : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_from_days s_singleton;
@@ -964,7 +964,7 @@ protected:
class Create_func_from_unixtime : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_from_unixtime s_singleton;
@@ -978,7 +978,7 @@ protected:
class Create_func_geometry_from_text : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_geometry_from_text s_singleton;
@@ -993,7 +993,7 @@ protected:
class Create_func_geometry_from_wkb : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_geometry_from_wkb s_singleton;
@@ -1008,7 +1008,7 @@ protected:
class Create_func_geometry_type : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_geometry_type s_singleton;
@@ -1023,7 +1023,7 @@ protected:
class Create_func_geometryn : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_geometryn s_singleton;
@@ -1037,7 +1037,7 @@ protected:
class Create_func_get_lock : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_get_lock s_singleton;
@@ -1051,7 +1051,7 @@ protected:
class Create_func_glength : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_glength s_singleton;
@@ -1065,7 +1065,7 @@ protected:
class Create_func_greatest : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_greatest s_singleton;
@@ -1078,7 +1078,7 @@ protected:
class Create_func_hex : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_hex s_singleton;
@@ -1091,7 +1091,7 @@ protected:
class Create_func_ifnull : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_ifnull s_singleton;
@@ -1104,7 +1104,7 @@ protected:
class Create_func_inet_ntoa : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_inet_ntoa s_singleton;
@@ -1117,7 +1117,7 @@ protected:
class Create_func_inet_aton : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_inet_aton s_singleton;
@@ -1130,7 +1130,7 @@ protected:
class Create_func_instr : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_instr s_singleton;
@@ -1144,7 +1144,7 @@ protected:
class Create_func_interiorringn : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_interiorringn s_singleton;
@@ -1159,7 +1159,7 @@ protected:
class Create_func_intersects : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_intersects s_singleton;
@@ -1173,7 +1173,7 @@ protected:
class Create_func_is_free_lock : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_is_free_lock s_singleton;
@@ -1186,7 +1186,7 @@ protected:
class Create_func_is_used_lock : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_is_used_lock s_singleton;
@@ -1200,7 +1200,7 @@ protected:
class Create_func_isclosed : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_isclosed s_singleton;
@@ -1215,7 +1215,7 @@ protected:
class Create_func_isempty : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_isempty s_singleton;
@@ -1229,7 +1229,7 @@ protected:
class Create_func_isnull : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_isnull s_singleton;
@@ -1243,7 +1243,7 @@ protected:
class Create_func_issimple : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_issimple s_singleton;
@@ -1257,7 +1257,7 @@ protected:
class Create_func_last_day : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_last_day s_singleton;
@@ -1270,7 +1270,7 @@ protected:
class Create_func_last_insert_id : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_last_insert_id s_singleton;
@@ -1283,7 +1283,7 @@ protected:
class Create_func_lcase : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_lcase s_singleton;
@@ -1296,7 +1296,7 @@ protected:
class Create_func_least : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_least s_singleton;
@@ -1309,7 +1309,7 @@ protected:
class Create_func_length : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_length s_singleton;
@@ -1322,7 +1322,7 @@ protected:
class Create_func_ln : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_ln s_singleton;
@@ -1335,7 +1335,7 @@ protected:
class Create_func_load_file : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_load_file s_singleton;
@@ -1348,7 +1348,7 @@ protected:
class Create_func_locate : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_locate s_singleton;
@@ -1361,7 +1361,7 @@ protected:
class Create_func_log : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_log s_singleton;
@@ -1374,7 +1374,7 @@ protected:
class Create_func_log10 : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_log10 s_singleton;
@@ -1387,7 +1387,7 @@ protected:
class Create_func_log2 : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_log2 s_singleton;
@@ -1400,7 +1400,7 @@ protected:
class Create_func_lpad : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_lpad s_singleton;
@@ -1413,7 +1413,7 @@ protected:
class Create_func_ltrim : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_ltrim s_singleton;
@@ -1426,7 +1426,7 @@ protected:
class Create_func_makedate : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_makedate s_singleton;
@@ -1439,7 +1439,7 @@ protected:
class Create_func_maketime : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_maketime s_singleton;
@@ -1452,7 +1452,7 @@ protected:
class Create_func_make_set : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_make_set s_singleton;
@@ -1465,7 +1465,7 @@ protected:
class Create_func_master_pos_wait : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_master_pos_wait s_singleton;
@@ -1478,7 +1478,7 @@ protected:
class Create_func_md5 : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_md5 s_singleton;
@@ -1491,7 +1491,7 @@ protected:
class Create_func_monthname : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_monthname s_singleton;
@@ -1504,7 +1504,7 @@ protected:
class Create_func_name_const : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_name_const s_singleton;
@@ -1517,7 +1517,7 @@ protected:
class Create_func_nullif : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_nullif s_singleton;
@@ -1531,7 +1531,7 @@ protected:
class Create_func_numgeometries : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_numgeometries s_singleton;
@@ -1546,7 +1546,7 @@ protected:
class Create_func_numinteriorring : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_numinteriorring s_singleton;
@@ -1561,7 +1561,7 @@ protected:
class Create_func_numpoints : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_numpoints s_singleton;
@@ -1575,7 +1575,7 @@ protected:
class Create_func_oct : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_oct s_singleton;
@@ -1588,7 +1588,7 @@ protected:
class Create_func_ord : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_ord s_singleton;
@@ -1602,7 +1602,7 @@ protected:
class Create_func_overlaps : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_overlaps s_singleton;
@@ -1616,7 +1616,7 @@ protected:
class Create_func_period_add : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_period_add s_singleton;
@@ -1629,7 +1629,7 @@ protected:
class Create_func_period_diff : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_period_diff s_singleton;
@@ -1642,7 +1642,7 @@ protected:
class Create_func_pi : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_pi s_singleton;
@@ -1656,7 +1656,7 @@ protected:
class Create_func_pointn : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_pointn s_singleton;
@@ -1670,7 +1670,7 @@ protected:
class Create_func_pow : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_pow s_singleton;
@@ -1683,7 +1683,7 @@ protected:
class Create_func_quote : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_quote s_singleton;
@@ -1696,7 +1696,7 @@ protected:
class Create_func_radians : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_radians s_singleton;
@@ -1709,7 +1709,7 @@ protected:
class Create_func_rand : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_rand s_singleton;
@@ -1722,7 +1722,7 @@ protected:
class Create_func_release_lock : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_release_lock s_singleton;
@@ -1735,7 +1735,7 @@ protected:
class Create_func_reverse : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_reverse s_singleton;
@@ -1748,7 +1748,7 @@ protected:
class Create_func_round : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_round s_singleton;
@@ -1761,7 +1761,7 @@ protected:
class Create_func_row_count : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_row_count s_singleton;
@@ -1774,7 +1774,7 @@ protected:
class Create_func_rpad : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_rpad s_singleton;
@@ -1787,7 +1787,7 @@ protected:
class Create_func_rtrim : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_rtrim s_singleton;
@@ -1800,7 +1800,7 @@ protected:
class Create_func_sec_to_time : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sec_to_time s_singleton;
@@ -1813,7 +1813,7 @@ protected:
class Create_func_sha : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sha s_singleton;
@@ -1826,7 +1826,7 @@ protected:
class Create_func_sign : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sign s_singleton;
@@ -1839,7 +1839,7 @@ protected:
class Create_func_sin : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sin s_singleton;
@@ -1852,7 +1852,7 @@ protected:
class Create_func_sleep : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sleep s_singleton;
@@ -1865,7 +1865,7 @@ protected:
class Create_func_soundex : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_soundex s_singleton;
@@ -1878,7 +1878,7 @@ protected:
class Create_func_space : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_space s_singleton;
@@ -1891,7 +1891,7 @@ protected:
class Create_func_sqrt : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_sqrt s_singleton;
@@ -1905,7 +1905,7 @@ protected:
class Create_func_srid : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_srid s_singleton;
@@ -1920,7 +1920,7 @@ protected:
class Create_func_startpoint : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_startpoint s_singleton;
@@ -1934,7 +1934,7 @@ protected:
class Create_func_str_to_date : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_str_to_date s_singleton;
@@ -1947,7 +1947,7 @@ protected:
class Create_func_strcmp : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_strcmp s_singleton;
@@ -1960,7 +1960,7 @@ protected:
class Create_func_substr_index : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_substr_index s_singleton;
@@ -1973,7 +1973,7 @@ protected:
class Create_func_subtime : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_subtime s_singleton;
@@ -1986,7 +1986,7 @@ protected:
class Create_func_tan : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_tan s_singleton;
@@ -1999,7 +1999,7 @@ protected:
class Create_func_time_format : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_time_format s_singleton;
@@ -2012,7 +2012,7 @@ protected:
class Create_func_time_to_sec : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_time_to_sec s_singleton;
@@ -2025,7 +2025,7 @@ protected:
class Create_func_timediff : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_timediff s_singleton;
@@ -2038,7 +2038,7 @@ protected:
class Create_func_to_days : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_to_days s_singleton;
@@ -2052,7 +2052,7 @@ protected:
class Create_func_touches : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_touches s_singleton;
@@ -2066,7 +2066,7 @@ protected:
class Create_func_ucase : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_ucase s_singleton;
@@ -2079,7 +2079,7 @@ protected:
class Create_func_uncompress : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_uncompress s_singleton;
@@ -2092,7 +2092,7 @@ protected:
class Create_func_uncompressed_length : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_uncompressed_length s_singleton;
@@ -2105,7 +2105,7 @@ protected:
class Create_func_unhex : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_unhex s_singleton;
@@ -2118,7 +2118,7 @@ protected:
class Create_func_unix_timestamp : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_unix_timestamp s_singleton;
@@ -2131,7 +2131,7 @@ protected:
class Create_func_uuid : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_uuid s_singleton;
@@ -2157,7 +2157,7 @@ protected:
class Create_func_version : public Create_func_arg0
{
public:
- virtual Item* create(THD *thd);
+ virtual Item *create(THD *thd);
static Create_func_version s_singleton;
@@ -2170,7 +2170,7 @@ protected:
class Create_func_weekday : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_weekday s_singleton;
@@ -2183,7 +2183,7 @@ protected:
class Create_func_weekofyear : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_weekofyear s_singleton;
@@ -2197,7 +2197,7 @@ protected:
class Create_func_within : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_within s_singleton;
@@ -2212,7 +2212,7 @@ protected:
class Create_func_x : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_x s_singleton;
@@ -2226,7 +2226,7 @@ protected:
class Create_func_xml_extractvalue : public Create_func_arg2
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2);
static Create_func_xml_extractvalue s_singleton;
@@ -2239,7 +2239,7 @@ protected:
class Create_func_xml_update : public Create_func_arg3
{
public:
- virtual Item* create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
+ virtual Item *create(THD *thd, Item *arg1, Item *arg2, Item *arg3);
static Create_func_xml_update s_singleton;
@@ -2253,7 +2253,7 @@ protected:
class Create_func_y : public Create_func_arg1
{
public:
- virtual Item* create(THD *thd, Item *arg1);
+ virtual Item *create(THD *thd, Item *arg1);
static Create_func_y s_singleton;
@@ -2267,7 +2267,7 @@ protected:
class Create_func_year_week : public Create_native_func
{
public:
- virtual Item* create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list);
static Create_func_year_week s_singleton;
diff --git a/sql/item_create.h b/sql/item_create.h
index 7ace4032515..a3ba6bd26a6 100644
--- a/sql/item_create.h
+++ b/sql/item_create.h
@@ -53,7 +53,7 @@ public:
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call, or NULL
*/
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
protected:
/** Constructor */
@@ -80,7 +80,7 @@ public:
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call
*/
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
The builder create method, for qualified functions.
@@ -127,7 +127,7 @@ extern Create_qfunc * find_qualified_function_builder(THD *thd);
class Create_udf_func : public Create_func
{
public:
- virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list);
+ virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/**
The builder create method, for User Defined Functions.
@@ -136,7 +136,7 @@ public:
@param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call
*/
- Item* create(THD *thd, udf_func *fct, List<Item> *item_list);
+ Item *create(THD *thd, udf_func *fct, List<Item> *item_list);
/** Singleton. */
static Create_udf_func s_singleton;
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 8768a71b7ae..efc42c1b73f 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -2916,7 +2916,8 @@ udf_handler::fix_fields(THD *thd, Item_result_field *func,
String *res= arguments[i]->val_str(&buffers[i]);
if (arguments[i]->null_value)
continue;
- f_args.args[i]= (char*) res->ptr();
+ f_args.args[i]= (char*) res->c_ptr();
+ f_args.lengths[i]= res->length();
break;
}
case INT_RESULT:
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index a253397e52c..843c6ced263 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -624,7 +624,7 @@ void Item_exists_subselect::print(String *str)
}
-bool Item_in_subselect::test_limit(SELECT_LEX_UNIT *unit_arg)
+bool Item_in_subselect::test_limit(st_select_lex_unit *unit_arg)
{
if (unit_arg->fake_select_lex &&
unit_arg->fake_select_lex->test_limit())
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index 0af98b5d987..2fedb4b72b6 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -597,7 +597,7 @@ err:
strmake(buff, val_begin, min(length, sizeof(buff)-1));
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_ERROR,
ER_WRONG_VALUE_FOR_TYPE, ER(ER_WRONG_VALUE_FOR_TYPE),
- date_time_type, buff, "str_to_time");
+ date_time_type, buff, "str_to_date");
}
DBUG_RETURN(1);
}
diff --git a/sql/lock.cc b/sql/lock.cc
index 20fb7d73c1c..29a07858bc1 100644
--- a/sql/lock.cc
+++ b/sql/lock.cc
@@ -74,6 +74,11 @@ TODO:
#include <hash.h>
#include <assert.h>
+/**
+ @defgroup Locking Locking
+ @{
+*/
+
extern HASH open_cache;
/* flags for get_lock_data */
@@ -271,6 +276,8 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd, TABLE **tables, uint count,
thd->lock_id)];
if (rc > 1) /* a timeout or a deadlock */
{
+ if (sql_lock->table_count)
+ VOID(unlock_external(thd, sql_lock->table, sql_lock->table_count));
my_error(rc, MYF(0));
my_free((uchar*) sql_lock,MYF(0));
sql_lock= 0;
@@ -472,6 +479,9 @@ void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock)
unlock_external() we call handler::external_lock(F_UNLCK) only
if table->current_lock is not F_UNLCK.
+ @param thd thread context
+ @param locked list of locked tables
+ @param table the table to unlock
@param always_unlock specify explicitly if the legacy side
effect is desired.
*/
@@ -849,6 +859,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
if ((table=table_ptr[i])->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE)
continue;
lock_type= table->reginfo.lock_type;
+ DBUG_ASSERT (lock_type != TL_WRITE_DEFAULT);
if (lock_type >= TL_WRITE_ALLOW_WRITE)
{
*write_lock_used=table;
@@ -1174,8 +1185,9 @@ bool lock_table_names_exclusively(THD *thd, TABLE_LIST *table_list)
/**
@brief Test is 'table' is protected by an exclusive name lock.
- @param[in] thd The current thread handler
- @param[in] table Table container containing the single table to be tested
+ @param[in] thd The current thread handler
+ @param[in] table_list Table container containing the single table to be
+ tested
@note Needs to be protected by LOCK_open mutex.
@@ -1201,8 +1213,9 @@ is_table_name_exclusively_locked_by_this_thread(THD *thd,
/**
@brief Test is 'table key' is protected by an exclusive name lock.
- @param[in] thd The current thread handler.
- @param[in] table Table container containing the single table to be tested.
+ @param[in] thd The current thread handler.
+ @param[in] key
+ @param[in] key_length
@note Needs to be protected by LOCK_open mutex
@@ -1585,4 +1598,6 @@ void broadcast_refresh(void)
VOID(pthread_cond_broadcast(&COND_global_read_lock));
}
-
+/**
+ @} (end of group Locking)
+*/
diff --git a/sql/log.cc b/sql/log.cc
index 74a210a35b3..95204e89d0e 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -656,8 +656,14 @@ int Log_to_csv_event_handler::
table= open_performance_schema_table(thd, & table_list,
& open_tables_backup);
- result= (table ? 0 : 1);
- close_performance_schema_table(thd, & open_tables_backup);
+ if (table)
+ {
+ result= 0;
+ close_performance_schema_table(thd, & open_tables_backup);
+ }
+ else
+ result= 1;
+
DBUG_RETURN(result);
}
@@ -1215,10 +1221,10 @@ binlog_trans_log_savepos(THD *thd, my_off_t *pos)
{
DBUG_ENTER("binlog_trans_log_savepos");
DBUG_ASSERT(pos != NULL);
- if (thd->ha_data[binlog_hton->slot] == NULL)
+ if (thd_get_ha_data(thd, binlog_hton) == NULL)
thd->binlog_setup_trx_data();
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
DBUG_ASSERT(mysql_bin_log.is_open());
*pos= trx_data->position();
DBUG_PRINT("return", ("*pos: %lu", (ulong) *pos));
@@ -1247,12 +1253,12 @@ binlog_trans_log_truncate(THD *thd, my_off_t pos)
DBUG_ENTER("binlog_trans_log_truncate");
DBUG_PRINT("enter", ("pos: %lu", (ulong) pos));
- DBUG_ASSERT(thd->ha_data[binlog_hton->slot] != NULL);
+ DBUG_ASSERT(thd_get_ha_data(thd, binlog_hton) != NULL);
/* Only true if binlog_trans_log_savepos() wasn't called before */
DBUG_ASSERT(pos != ~(my_off_t) 0);
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
trx_data->truncate(pos);
DBUG_VOID_RETURN;
}
@@ -1283,9 +1289,9 @@ int binlog_init(void *p)
static int binlog_close_connection(handlerton *hton, THD *thd)
{
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
DBUG_ASSERT(trx_data->empty());
- thd->ha_data[binlog_hton->slot]= 0;
+ thd_set_ha_data(thd, binlog_hton, NULL);
trx_data->~binlog_trx_data();
my_free((uchar*)trx_data, MYF(0));
return 0;
@@ -1408,7 +1414,7 @@ static int binlog_commit(handlerton *hton, THD *thd, bool all)
{
DBUG_ENTER("binlog_commit");
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
if (trx_data->empty())
{
@@ -1435,7 +1441,7 @@ static int binlog_rollback(handlerton *hton, THD *thd, bool all)
DBUG_ENTER("binlog_rollback");
int error=0;
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
if (trx_data->empty()) {
trx_data->reset();
@@ -3251,23 +3257,22 @@ int THD::binlog_setup_trx_data()
{
DBUG_ENTER("THD::binlog_setup_trx_data");
binlog_trx_data *trx_data=
- (binlog_trx_data*) ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
if (trx_data)
DBUG_RETURN(0); // Already set up
- ha_data[binlog_hton->slot]= trx_data=
- (binlog_trx_data*) my_malloc(sizeof(binlog_trx_data), MYF(MY_ZEROFILL));
+ trx_data= (binlog_trx_data*) my_malloc(sizeof(binlog_trx_data), MYF(MY_ZEROFILL));
if (!trx_data ||
open_cached_file(&trx_data->trans_log, mysql_tmpdir,
LOG_PREFIX, binlog_cache_size, MYF(MY_WME)))
{
my_free((uchar*)trx_data, MYF(MY_ALLOW_ZERO_PTR));
- ha_data[binlog_hton->slot]= 0;
DBUG_RETURN(1); // Didn't manage to set it up
}
+ thd_set_ha_data(this, binlog_hton, trx_data);
- trx_data= new (ha_data[binlog_hton->slot]) binlog_trx_data;
+ trx_data= new (thd_get_ha_data(this, binlog_hton)) binlog_trx_data;
DBUG_RETURN(0);
}
@@ -3303,7 +3308,7 @@ int THD::binlog_setup_trx_data()
void
THD::binlog_start_trans_and_stmt()
{
- binlog_trx_data *trx_data= (binlog_trx_data*) ha_data[binlog_hton->slot];
+ binlog_trx_data *trx_data= (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
DBUG_ENTER("binlog_start_trans_and_stmt");
DBUG_PRINT("enter", ("trx_data: 0x%lx trx_data->before_stmt_pos: %lu",
(long) trx_data,
@@ -3323,7 +3328,7 @@ THD::binlog_start_trans_and_stmt()
void THD::binlog_set_stmt_begin() {
binlog_trx_data *trx_data=
- (binlog_trx_data*) ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
/*
The call to binlog_trans_log_savepos() might create the trx_data
@@ -3333,14 +3338,15 @@ void THD::binlog_set_stmt_begin() {
*/
my_off_t pos= 0;
binlog_trans_log_savepos(this, &pos);
- trx_data= (binlog_trx_data*) ha_data[binlog_hton->slot];
+ trx_data= (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
trx_data->before_stmt_pos= pos;
}
int THD::binlog_flush_transaction_cache()
{
DBUG_ENTER("binlog_flush_transaction_cache");
- binlog_trx_data *trx_data= (binlog_trx_data*) ha_data[binlog_hton->slot];
+ binlog_trx_data *trx_data= (binlog_trx_data*)
+ thd_get_ha_data(this, binlog_hton);
DBUG_PRINT("enter", ("trx_data=0x%lu", (ulong) trx_data));
if (trx_data)
DBUG_PRINT("enter", ("trx_data->before_stmt_pos=%lu",
@@ -3403,7 +3409,7 @@ Rows_log_event*
THD::binlog_get_pending_rows_event() const
{
binlog_trx_data *const trx_data=
- (binlog_trx_data*) ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
/*
This is less than ideal, but here's the story: If there is no
trx_data, prepare_pending_rows_event() has never been called
@@ -3416,11 +3422,11 @@ THD::binlog_get_pending_rows_event() const
void
THD::binlog_set_pending_rows_event(Rows_log_event* ev)
{
- if (ha_data[binlog_hton->slot] == NULL)
+ if (thd_get_ha_data(this, binlog_hton) == NULL)
binlog_setup_trx_data();
binlog_trx_data *const trx_data=
- (binlog_trx_data*) ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(this, binlog_hton);
DBUG_ASSERT(trx_data);
trx_data->set_pending(ev);
@@ -3443,7 +3449,7 @@ MYSQL_BIN_LOG::flush_and_set_pending_rows_event(THD *thd,
int error= 0;
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
DBUG_ASSERT(trx_data);
@@ -3594,7 +3600,7 @@ bool MYSQL_BIN_LOG::write(Log_event *event_info)
goto err;
binlog_trx_data *const trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
IO_CACHE *trans_log= &trx_data->trans_log;
my_off_t trans_log_pos= my_b_tell(trans_log);
if (event_info->get_cache_stmt() || trans_log_pos != 0)
@@ -5031,7 +5037,7 @@ int TC_LOG_BINLOG::log_xid(THD *thd, my_xid xid)
DBUG_ENTER("TC_LOG_BINLOG::log");
Xid_log_event xle(thd, xid);
binlog_trx_data *trx_data=
- (binlog_trx_data*) thd->ha_data[binlog_hton->slot];
+ (binlog_trx_data*) thd_get_ha_data(thd, binlog_hton);
/*
We always commit the entire transaction when writing an XID. Also
note that the return value is inverted.
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 33442baaf90..44898ca8639 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -5701,7 +5701,7 @@ Rows_log_event::Rows_log_event(const char *buf, uint event_len,
#ifndef MYSQL_CLIENT
m_table(NULL),
#endif
- m_rows_buf(0), m_rows_cur(0), m_rows_end(0)
+ m_table_id(0), m_rows_buf(0), m_rows_cur(0), m_rows_end(0)
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
,m_key(NULL), m_curr_row(NULL), m_curr_row_end(NULL)
#endif
@@ -6247,7 +6247,7 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli)
wait (reached end of last relay log and nothing gets appended
there), we timeout after one minute, and notify DBA about the
problem. When WL#2975 is implemented, just remove the member
- Relay_log_info::last_event_start_time and all its occurences.
+ Relay_log_info::last_event_start_time and all its occurrences.
*/
const_cast<Relay_log_info*>(rli)->last_event_start_time= my_time(0);
}
diff --git a/sql/log_event.h b/sql/log_event.h
index 5c6a52fd9db..05d4c70042f 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -13,6 +13,15 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/**
+ @addtogroup Replication
+ @{
+
+ @file
+
+ Binary log event definitions.
+*/
+
#ifndef _log_event_h
#define _log_event_h
@@ -2582,7 +2591,7 @@ protected:
<caption>Incident event format</caption>
<tr>
<th>Symbol</th>
- <th>Size<br/>(bytes)</th>
+ <th>Size<br>(bytes)</th>
<th>Description</th>
</tr>
<tr>
@@ -2667,4 +2676,8 @@ static inline bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache,
reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
}
+/**
+ @} (end of group Replication)
+*/
+
#endif /* _log_event_h */
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 805cf23118f..47a42354423 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -937,9 +937,16 @@ bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent);
bool do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db,
char *new_table_name, char *new_table_alias,
bool skip_error);
+
bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name,
bool force_switch);
+bool mysql_opt_change_db(THD *thd,
+ const LEX_STRING *new_db_name,
+ LEX_STRING *saved_db_name,
+ bool force_switch,
+ bool *cur_db_changed);
+
void mysql_parse(THD *thd, const char *inBuf, uint length,
const char ** semicolon);
@@ -1278,7 +1285,6 @@ bool mysql_ha_read(THD *, TABLE_LIST *,enum enum_ha_read_modes,char *,
List<Item> *,enum ha_rkey_function,Item *,ha_rows,ha_rows);
int mysql_ha_flush(THD *thd, TABLE_LIST *tables, uint mode_flags,
bool is_locked);
-void mysql_ha_mark_tables_for_reopen(THD *thd, TABLE *table);
/* mysql_ha_flush mode_flags bits */
#define MYSQL_HA_CLOSE_FINAL 0x00
#define MYSQL_HA_REOPEN_ON_USAGE 0x01
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index ce3532b3a9f..6ea1cf111bb 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -746,14 +746,16 @@ static void close_connections(void)
(void) pthread_mutex_lock(&LOCK_manager);
if (manager_thread_in_use)
{
- DBUG_PRINT("quit",("killing manager thread: 0x%lx",manager_thread));
+ DBUG_PRINT("quit", ("killing manager thread: 0x%lx",
+ (ulong)manager_thread));
(void) pthread_cond_signal(&COND_manager);
}
(void) pthread_mutex_unlock(&LOCK_manager);
/* kill connection thread */
#if !defined(__WIN__) && !defined(__NETWARE__)
- DBUG_PRINT("quit",("waiting for select thread: 0x%lx",select_thread));
+ DBUG_PRINT("quit", ("waiting for select thread: 0x%lx",
+ (ulong) select_thread));
(void) pthread_mutex_lock(&LOCK_thread_count);
while (select_thread_in_use)
@@ -1288,7 +1290,7 @@ static void wait_for_signal_thread_to_end()
*/
for (i= 0 ; i < 100 && signal_thread_in_use; i++)
{
- if (pthread_kill(signal_thread, MYSQL_KILL_SIGNAL))
+ if (pthread_kill(signal_thread, MYSQL_KILL_SIGNAL) != ESRCH)
break;
my_sleep(100); // Give it time to die
}
@@ -4355,6 +4357,11 @@ static void create_new_thread(THD *thd)
DBUG_VOID_RETURN;
}
pthread_mutex_lock(&LOCK_thread_count);
+ /*
+ The initialization of thread_id is done in create_embedded_thd() for
+ the embedded library.
+ TODO: refactor this to avoid code duplication there
+ */
thd->thread_id= thd->variables.pseudo_thread_id= thread_id++;
/* Start a new thread to handle connection */
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 516da13d857..c027ce20e89 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -7815,8 +7815,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
range->min_keypart_map= range->max_keypart_map=
make_prev_keypart_map(ref->key_parts);
range->flag= ((ref->key_length == key_info->key_length &&
- (key_info->flags & (HA_NOSAME | HA_END_SPACE_KEY)) ==
- HA_NOSAME) ? EQ_RANGE : 0);
+ (key_info->flags & HA_END_SPACE_KEY) == 0) ? EQ_RANGE : 0);
if (!(quick->key_parts=key_part=(KEY_PART *)
alloc_root(&quick->alloc,sizeof(KEY_PART)*ref->key_parts)))
diff --git a/sql/rpl_utility.h b/sql/rpl_utility.h
index 4fd38022da0..26edbdd1405 100644
--- a/sql/rpl_utility.h
+++ b/sql/rpl_utility.h
@@ -241,8 +241,8 @@ public:
private:
ulong m_size; // Number of elements in the types array
field_type *m_type; // Array of type descriptors
- uint16 *m_field_metadata;
uint m_field_metadata_size;
+ uint16 *m_field_metadata;
uchar *m_null_bits;
uchar *m_memory;
};
diff --git a/sql/share/charsets/ascii.xml b/sql/share/charsets/ascii.xml
index 068fb84eeae..f4fb79ac632 100644
--- a/sql/share/charsets/ascii.xml
+++ b/sql/share/charsets/ascii.xml
@@ -117,9 +117,9 @@
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
- 50 51 52 53 54 55 56 57 58 59 5A 5C 5D 5B 5E 5F
- 45 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
- 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 59 7F
+ 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
+ 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
+ 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
diff --git a/sql/slave.h b/sql/slave.h
index 55b83aa3616..2cd9ea352ba 100644
--- a/sql/slave.h
+++ b/sql/slave.h
@@ -16,6 +16,12 @@
#ifndef SLAVE_H
#define SLAVE_H
+/**
+ @defgroup Replication Replication
+ @{
+
+ @file
+*/
#ifdef HAVE_REPLICATION
#include "log.h"
@@ -209,6 +215,8 @@ extern I_List<THD> threads;
#define SLAVE_IO 1
#define SLAVE_SQL 2
-#endif
-
+/**
+ @} (end of group Replication)
+*/
+#endif
diff --git a/sql/sp.cc b/sql/sp.cc
index 0956561719b..6032688f7f1 100644
--- a/sql/sp.cc
+++ b/sql/sp.cc
@@ -84,7 +84,7 @@ class Stored_routine_creation_ctx : public Stored_program_creation_ctx,
{
public:
static Stored_routine_creation_ctx *
- load_from_db(THD *thd, const class sp_name *name, TABLE *proc_tbl);
+ load_from_db(THD *thd, const sp_name *name, TABLE *proc_tbl);
public:
virtual Stored_program_creation_ctx *clone(MEM_ROOT *mem_root)
@@ -520,9 +520,10 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp,
{
LEX *old_lex= thd->lex, newlex;
String defstr;
- char old_db_buf[NAME_LEN+1];
- LEX_STRING old_db= { old_db_buf, sizeof(old_db_buf) };
- bool dbchanged;
+ char saved_cur_db_name_buf[NAME_LEN+1];
+ LEX_STRING saved_cur_db_name=
+ { saved_cur_db_name_buf, sizeof(saved_cur_db_name_buf) };
+ bool cur_db_changed;
ulong old_sql_mode= thd->variables.sql_mode;
ha_rows old_select_limit= thd->variables.select_limit;
sp_rcontext *old_spcont= thd->spcont;
@@ -567,16 +568,17 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp,
}
/*
- Change current database if needed.
+ Change the current database (if needed).
- collation_database will be updated here. However, it can be wrong,
- because it will contain the current value of the database collation.
- We need collation_database to be fixed at the creation time -- so
- we'll update it later in switch_query_ctx().
+ TODO: why do we force switch here?
*/
- if ((ret= sp_use_new_db(thd, name->m_db, &old_db, 1, &dbchanged)))
+ if (mysql_opt_change_db(thd, &name->m_db, &saved_cur_db_name, TRUE,
+ &cur_db_changed))
+ {
+ ret= SP_INTERNAL_ERROR;
goto end;
+ }
thd->spcont= NULL;
@@ -585,34 +587,42 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp,
lex_start(thd);
- if (parse_sql(thd, &lip, creation_ctx) || newlex.sphead == NULL)
- {
- sp_head *sp= newlex.sphead;
+ ret= parse_sql(thd, &lip, creation_ctx) || newlex.sphead == NULL;
- if (dbchanged && (ret= mysql_change_db(thd, &old_db, TRUE)))
- goto end;
- delete sp;
- ret= SP_PARSE_ERROR;
+ /*
+ Force switching back to the saved current database (if changed),
+ because it may be NULL. In this case, mysql_change_db() would
+ generate an error.
+ */
+
+ if (cur_db_changed && mysql_change_db(thd, &saved_cur_db_name, TRUE))
+ {
+ delete newlex.sphead;
+ ret= SP_INTERNAL_ERROR;
+ goto end;
}
- else
+
+ if (ret)
{
- if (dbchanged && (ret= mysql_change_db(thd, &old_db, TRUE)))
- goto end;
- *sphp= newlex.sphead;
- (*sphp)->set_definer(&definer_user_name, &definer_host_name);
- (*sphp)->set_info(created, modified, &chistics, sql_mode);
- (*sphp)->set_creation_ctx(creation_ctx);
- (*sphp)->optimize();
- /*
- Not strictly necessary to invoke this method here, since we know
- that we've parsed CREATE PROCEDURE/FUNCTION and not an
- UPDATE/DELETE/INSERT/REPLACE/LOAD/CREATE TABLE, but we try to
- maintain the invariant that this method is called for each
- distinct statement, in case its logic is extended with other
- types of analyses in future.
- */
- newlex.set_trg_event_type_for_tables();
+ delete newlex.sphead;
+ ret= SP_PARSE_ERROR;
+ goto end;
}
+
+ *sphp= newlex.sphead;
+ (*sphp)->set_definer(&definer_user_name, &definer_host_name);
+ (*sphp)->set_info(created, modified, &chistics, sql_mode);
+ (*sphp)->set_creation_ctx(creation_ctx);
+ (*sphp)->optimize();
+ /*
+ Not strictly necessary to invoke this method here, since we know
+ that we've parsed CREATE PROCEDURE/FUNCTION and not an
+ UPDATE/DELETE/INSERT/REPLACE/LOAD/CREATE TABLE, but we try to
+ maintain the invariant that this method is called for each
+ distinct statement, in case its logic is extended with other
+ types of analyses in future.
+ */
+ newlex.set_trg_event_type_for_tables();
}
end:
@@ -2025,69 +2035,3 @@ create_string(THD *thd, String *buf,
buf->append(body, bodylen);
return TRUE;
}
-
-
-
-/*
- Change the current database if needed.
-
- SYNOPSIS
- sp_use_new_db()
- thd thread handle
- new_db new database name (a string and its length)
- old_db [IN] str points to a buffer where to store the old
- database, length contains the size of the buffer
- [OUT] if old db was not NULL, its name is copied
- to the buffer pointed at by str and length is updated
- accordingly. Otherwise str[0] is set to '\0' and length
- is set to 0. The out parameter should be used only if
- the database name has been changed (see dbchangedp).
- dbchangedp [OUT] is set to TRUE if the current database is changed,
- FALSE otherwise. A database is not changed if the old
- name is the same as the new one, both names are empty,
- or an error has occurred.
-
- RETURN VALUE
- 0 success
- 1 access denied or out of memory (the error message is
- set in THD)
-*/
-
-int
-sp_use_new_db(THD *thd, LEX_STRING new_db, LEX_STRING *old_db,
- bool no_access_check, bool *dbchangedp)
-{
- int ret;
- DBUG_ENTER("sp_use_new_db");
- DBUG_PRINT("enter", ("newdb: %s", new_db.str));
-
- /*
- A stored routine always belongs to some database. The
- old database (old_db) might be NULL, but to restore the
- old database we will use mysql_change_db.
- */
- DBUG_ASSERT(new_db.str && new_db.length);
-
- if (thd->db)
- {
- old_db->length= (strmake(old_db->str, thd->db, old_db->length) -
- old_db->str);
- }
- else
- {
- old_db->str[0]= '\0';
- old_db->length= 0;
- }
-
- /* Don't change the database if the new name is the same as the old one. */
- if (my_strcasecmp(system_charset_info, old_db->str, new_db.str) == 0)
- {
- *dbchangedp= FALSE;
- DBUG_RETURN(0);
- }
-
- ret= mysql_change_db(thd, &new_db, no_access_check);
-
- *dbchangedp= ret == 0;
- DBUG_RETURN(ret);
-}
diff --git a/sql/sp.h b/sql/sp.h
index 52b0344a2e2..3797eb289a4 100644
--- a/sql/sp.h
+++ b/sql/sp.h
@@ -85,15 +85,4 @@ extern "C" uchar* sp_sroutine_key(const uchar *ptr, size_t *plen,
*/
TABLE *open_proc_table_for_read(THD *thd, Open_tables_state *backup);
-
-/*
- Do a "use new_db". The current db is stored at old_db. If new_db is the
- same as the current one, nothing is changed. dbchangedp is set to true if
- the db was actually changed.
-*/
-
-int
-sp_use_new_db(THD *thd, LEX_STRING new_db, LEX_STRING *old_db,
- bool no_access_check, bool *dbchangedp);
-
#endif /* _SP_H_ */
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index b8535ee9958..828517011d5 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -249,11 +249,14 @@ sp_get_flags_for_command(LEX *lex)
case SQLCOM_CREATE_TRIGGER:
case SQLCOM_CREATE_USER:
case SQLCOM_ALTER_TABLE:
+ case SQLCOM_GRANT:
+ case SQLCOM_REVOKE:
case SQLCOM_BEGIN:
case SQLCOM_RENAME_TABLE:
case SQLCOM_RENAME_USER:
case SQLCOM_DROP_INDEX:
case SQLCOM_DROP_DB:
+ case SQLCOM_REVOKE_ALL:
case SQLCOM_DROP_USER:
case SQLCOM_DROP_VIEW:
case SQLCOM_DROP_TRIGGER:
@@ -1013,9 +1016,10 @@ bool
sp_head::execute(THD *thd)
{
DBUG_ENTER("sp_head::execute");
- char old_db_buf[NAME_LEN+1];
- LEX_STRING old_db= { old_db_buf, sizeof(old_db_buf) };
- bool dbchanged;
+ char saved_cur_db_name_buf[NAME_LEN+1];
+ LEX_STRING saved_cur_db_name=
+ { saved_cur_db_name_buf, sizeof(saved_cur_db_name_buf) };
+ bool cur_db_changed= FALSE;
sp_rcontext *ctx;
bool err_status= FALSE;
uint ip= 0;
@@ -1070,8 +1074,11 @@ sp_head::execute(THD *thd)
*/
if (m_db.length &&
- (err_status= sp_use_new_db(thd, m_db, &old_db, 0, &dbchanged)))
+ (err_status= mysql_opt_change_db(thd, &m_db, &saved_cur_db_name, FALSE,
+ &cur_db_changed)))
+ {
goto done;
+ }
if ((ctx= thd->spcont))
ctx->clear_handler();
@@ -1252,14 +1259,14 @@ sp_head::execute(THD *thd)
If the DB has changed, the pointer has changed too, but the
original thd->db will then have been freed
*/
- if (dbchanged)
+ if (cur_db_changed && !thd->killed)
{
/*
- No access check when changing back to where we came from.
- (It would generate an error from mysql_change_db() when old_db=="")
+ Force switching back to the saved current database, because it may be
+ NULL. In this case, mysql_change_db() would generate an error.
*/
- if (! thd->killed)
- err_status|= mysql_change_db(thd, &old_db, TRUE);
+
+ err_status|= mysql_change_db(thd, &saved_cur_db_name, TRUE);
}
m_flags&= ~IS_INVOKED;
DBUG_PRINT("info",
diff --git a/sql/sp_head.h b/sql/sp_head.h
index f6764fbc90e..3a8b41acd4c 100644
--- a/sql/sp_head.h
+++ b/sql/sp_head.h
@@ -23,6 +23,11 @@
#include <stddef.h>
+/**
+ @defgroup Stored_Routines Stored Routines
+ @ingroup Runtime_Environment
+ @{
+*/
// Values for the type enum. This reflects the order of the enum declaration
// in the CREATE TABLE command.
#define TYPE_ENUM_FUNCTION 1
@@ -186,7 +191,7 @@ public:
LEX_STRING m_qname; // db.name
/**
Key representing routine in the set of stored routines used by statement.
- [routine_type]db.name\0
+ [routine_type]db.name
@sa sp_name::m_sroutines_key
*/
LEX_STRING m_sroutines_key;
@@ -1322,4 +1327,8 @@ sp_prepare_func_item(THD* thd, Item **it_addr);
bool
sp_eval_expr(THD *thd, Field *result_field, Item **expr_item_ptr);
+/**
+ @} (end of group Stored_Routines)
+*/
+
#endif /* _SP_HEAD_H_ */
diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc
index 6b4aaa26236..490cc5e28c1 100644
--- a/sql/sql_analyse.cc
+++ b/sql/sql_analyse.cc
@@ -668,7 +668,7 @@ void field_ulonglong::add()
} // field_ulonglong::add
-int analyse::send_row(List<Item> &field_list __attribute__((unused)))
+int analyse::send_row(List<Item> & /* field_list */)
{
field_info **f = f_info;
diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h
index ae5d88bf93e..827b6f4b217 100644
--- a/sql/sql_analyse.h
+++ b/sql/sql_analyse.h
@@ -348,7 +348,7 @@ public:
}
virtual void add() {}
virtual bool change_columns(List<Item> &fields);
- virtual int send_row(List<Item> &fields);
+ virtual int send_row(List<Item> &field_list);
virtual void end_group(void) {}
virtual bool end_of_records(void);
friend Procedure *proc_analyse_init(THD *thd, ORDER *param,
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 24c6979c0f6..337fde53dac 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -82,6 +82,10 @@ bool Prelock_error_handler::safely_trapped_errors()
return ((m_handled_errors > 0) && (m_unhandled_errors == 0));
}
+/**
+ @defgroup Data_Dictionary Data Dictionary
+ @{
+*/
TABLE *unused_tables; /* Used by mysql_test */
HASH open_cache; /* Used by mysql_test */
@@ -1217,13 +1221,6 @@ void close_thread_tables(THD *thd, bool lock_in_use, bool skip_derived)
DBUG_PRINT("info", ("thd->open_tables: 0x%lx", (long) thd->open_tables));
- /*
- End open index scans and table scans and remove references to the tables
- from the handler tables hash. After this preparation it is safe to close
- the tables.
- */
- mysql_ha_mark_tables_for_reopen(thd, thd->open_tables);
-
found_old_table= 0;
while (thd->open_tables)
found_old_table|= close_thread_table(thd, &thd->open_tables);
@@ -2148,9 +2145,9 @@ bool lock_table_name_if_not_cached(THD *thd, const char *db,
@brief Check that table exists in table definition cache, on disk
or in some storage engine.
- @param thd Thread context
- @param table Table list element
- @param exists[out] Out parameter which is set to TRUE if table
+ @param thd Thread context
+ @param table Table list element
+ @param[out] exists Out parameter which is set to TRUE if table
exists and to FALSE otherwise.
@note This function assumes that caller owns LOCK_open mutex.
@@ -2251,7 +2248,6 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
HASH_SEARCH_STATE state;
DBUG_ENTER("open_table");
- DBUG_ASSERT (table_list->lock_type != TL_WRITE_DEFAULT);
/* find a unused table in the open table cache */
if (refresh)
*refresh=0;
@@ -3555,11 +3551,6 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags)
{
safe_to_ignore_table= FALSE;
- if (tables->lock_type == TL_WRITE_DEFAULT)
- {
- tables->lock_type= thd->update_lock_default;
- DBUG_ASSERT (tables->lock_type >= TL_WRITE_ALLOW_WRITE);
- }
/*
Ignore placeholders for derived tables. After derived tables
processing, link to created temporary table will be put here.
@@ -3704,7 +3695,8 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags)
}
if (tables->lock_type != TL_UNLOCK && ! thd->locked_tables)
- tables->table->reginfo.lock_type=tables->lock_type;
+ tables->table->reginfo.lock_type= tables->lock_type == TL_WRITE_DEFAULT ?
+ thd->update_lock_default : tables->lock_type;
tables->table->grant= tables->grant;
process_view_routines:
@@ -6738,6 +6730,7 @@ int setup_conds(THD *thd, TABLE_LIST *tables, TABLE_LIST *leaves,
DBUG_PRINT("info", ("thd->mark_used_columns: %d", thd->mark_used_columns));
select_lex->cond_count= 0;
select_lex->between_count= 0;
+ select_lex->max_equal_elems= 0;
for (table= tables; table; table= table->next_local)
{
@@ -7754,6 +7747,9 @@ open_performance_schema_table(THD *thd, TABLE_LIST *one_table,
*/
table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET;
}
+ else
+ thd->restore_backup_open_tables_state(backup);
+
thd->utime_after_lock= save_utime_after_lock;
DBUG_RETURN(table);
}
@@ -7769,24 +7765,25 @@ void close_performance_schema_table(THD *thd, Open_tables_state *backup)
{
bool found_old_table;
- if (thd->lock)
- {
- /*
- Note:
- We do not create explicitly a separate transaction for the
- performance table I/O, but borrow the current transaction.
- lock + unlock will autocommit the change done in the
- performance schema table: this is the expected result.
- The current transaction should not be affected by this code.
- TODO: Note that if a transactional engine is used for log tables,
- this code will need to be revised, as a separate transaction
- might be needed.
- */
- mysql_unlock_tables(thd, thd->lock);
- thd->lock= 0;
- }
+ /*
+ If open_performance_schema_table() fails,
+ this function should not be called.
+ */
+ DBUG_ASSERT(thd->lock != NULL);
- safe_mutex_assert_not_owner(&LOCK_open);
+ /*
+ Note:
+ We do not create explicitly a separate transaction for the
+ performance table I/O, but borrow the current transaction.
+ lock + unlock will autocommit the change done in the
+ performance schema table: this is the expected result.
+ The current transaction should not be affected by this code.
+ TODO: Note that if a transactional engine is used for log tables,
+ this code will need to be revised, as a separate transaction
+ might be needed.
+ */
+ mysql_unlock_tables(thd, thd->lock);
+ thd->lock= 0;
pthread_mutex_lock(&LOCK_open);
@@ -7802,3 +7799,6 @@ void close_performance_schema_table(THD *thd, Open_tables_state *backup)
thd->restore_backup_open_tables_state(backup);
}
+/**
+ @} (end of group Data_Dictionary)
+*/
diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc
index f6b48afc10b..ada927fa467 100644
--- a/sql/sql_cache.cc
+++ b/sql/sql_cache.cc
@@ -749,6 +749,12 @@ void query_cache_end_of_result(THD *thd)
if (thd->net.query_cache_query == 0)
DBUG_VOID_RETURN;
+ if (thd->killed)
+ {
+ query_cache_abort(&thd->net);
+ DBUG_VOID_RETURN;
+ }
+
#ifdef EMBEDDED_LIBRARY
query_cache_insert(&thd->net, (char*)thd,
emb_count_querycache_size(thd));
@@ -775,28 +781,31 @@ void query_cache_end_of_result(THD *thd)
DUMP(&query_cache);
BLOCK_LOCK_WR(query_block);
Query_cache_query *header= query_block->query();
- Query_cache_block *last_result_block= header->result()->prev;
- ulong allign_size= ALIGN_SIZE(last_result_block->used);
- ulong len= max(query_cache.min_allocation_unit, allign_size);
- if (last_result_block->length >= query_cache.min_allocation_unit + len)
- query_cache.split_block(last_result_block,len);
+ Query_cache_block *last_result_block;
+ ulong allign_size;
+ ulong len;
-#ifndef DBUG_OFF
if (header->result() == 0)
{
- DBUG_PRINT("error", ("end of data whith no result. query '%s'",
- header->query()));
- query_cache.wreck(__LINE__, "");
-
+ DBUG_PRINT("error", ("End of data with no result blocks; "
+ "Query '%s' removed from cache.", header->query()));
/*
- We do not need call of BLOCK_UNLOCK_WR(query_block); here because
- query_cache.wreck() switched query cache off but left content
- untouched for investigation (it is debugging method).
+ Extra safety: empty result should not happen in the normal call
+ to this function. In the release version that query should be ignored
+ and removed from QC.
*/
+ DBUG_ASSERT(0);
+ query_cache.free_query(query_block);
STRUCT_UNLOCK(&query_cache.structure_guard_mutex);
DBUG_VOID_RETURN;
}
-#endif
+
+ last_result_block= header->result()->prev;
+ allign_size= ALIGN_SIZE(last_result_block->used);
+ len= max(query_cache.min_allocation_unit, allign_size);
+ if (last_result_block->length >= query_cache.min_allocation_unit + len)
+ query_cache.split_block(last_result_block,len);
+
header->found_rows(current_thd->limit_found_rows);
header->result()->type= Query_cache_block::RESULT;
@@ -3222,14 +3231,42 @@ void Query_cache::double_linked_list_join(Query_cache_block *head_tail,
>0 number of tables
*/
-static TABLE_COUNTER_TYPE process_and_count_tables(TABLE_LIST *tables_used,
- uint8 *tables_type)
+TABLE_COUNTER_TYPE
+Query_cache::process_and_count_tables(THD *thd, TABLE_LIST *tables_used,
+ uint8 *tables_type)
{
DBUG_ENTER("process_and_count_tables");
TABLE_COUNTER_TYPE table_count = 0;
for (; tables_used; tables_used= tables_used->next_global)
{
table_count++;
+#ifdef HAVE_QUERY_CACHE
+ /*
+ Disable any attempt to store this statement if there are
+ column level grants on any referenced tables.
+ The grant.want_privileges flag was set to 1 in the
+ check_grant() function earlier if the TABLE_LIST object
+ had any associated column privileges.
+
+ We need to check that the TABLE_LIST object isn't part
+ of a VIEW definition because we want to be able to cache
+ views.
+
+ TODO: Although it is possible to cache views, the privilege
+ check on view tables always fall back on column privileges
+ even if there are more generic table privileges. Thus it isn't
+ currently possible to retrieve cached view-tables unless the
+ client has the super user privileges.
+ */
+ if (tables_used->grant.want_privilege &&
+ tables_used->belong_to_view == NULL)
+ {
+ DBUG_PRINT("qcache", ("Don't cache statement as it refers to "
+ "tables with column privileges."));
+ thd->lex->safe_to_cache_query= 0;
+ DBUG_RETURN(0);
+ }
+#endif
if (tables_used->view)
{
DBUG_PRINT("qcache", ("view: %s db: %s",
@@ -3307,7 +3344,8 @@ Query_cache::is_cacheable(THD *thd, uint32 query_len, char *query, LEX *lex,
(long) lex->select_lex.options,
(int) thd->variables.query_cache_type));
- if (!(table_count= process_and_count_tables(tables_used, tables_type)))
+ if (!(table_count= process_and_count_tables(thd, tables_used,
+ tables_type)))
DBUG_RETURN(0);
if ((thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) &&
diff --git a/sql/sql_cache.h b/sql/sql_cache.h
index 645807eecbf..b47e2e9a43b 100644
--- a/sql/sql_cache.h
+++ b/sql/sql_cache.h
@@ -409,10 +409,12 @@ protected:
If query is cacheable return number tables in query
(query without tables not cached)
*/
- static
TABLE_COUNTER_TYPE is_cacheable(THD *thd, uint32 query_len, char *query,
- LEX *lex, TABLE_LIST *tables_used,
- uint8 *tables_type);
+ LEX *lex, TABLE_LIST *tables_used,
+ uint8 *tables_type);
+ TABLE_COUNTER_TYPE process_and_count_tables(THD *thd,
+ TABLE_LIST *tables_used,
+ uint8 *tables_type);
static my_bool ask_handler_allowance(THD *thd, TABLE_LIST *tables_used);
public:
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 59d0d245597..66a51d5bb00 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -387,7 +387,6 @@ THD::THD()
init_sql_alloc(&main_mem_root, ALLOC_ROOT_MIN_BLOCK_SIZE, 0);
stmt_arena= this;
thread_stack= 0;
- db= 0;
catalog= (char*)"std"; // the only catalog we have for now
main_security_ctx.init();
security_ctx= &main_security_ctx;
@@ -395,7 +394,7 @@ THD::THD()
query_start_used= 0;
count_cuted_fields= CHECK_FIELD_IGNORE;
killed= NOT_KILLED;
- db_length= col_access=0;
+ col_access=0;
query_error= thread_specific_used= FALSE;
hash_clear(&handler_tables_hash);
tmp_table=0;
@@ -2040,7 +2039,9 @@ Statement::Statement(LEX *lex_arg, MEM_ROOT *mem_root_arg,
lex(lex_arg),
query(0),
query_length(0),
- cursor(0)
+ cursor(0),
+ db(NULL),
+ db_length(0)
{
name.str= NULL;
}
@@ -2423,6 +2424,10 @@ bool Security_context::set_user(char *user_arg)
Initialize this security context from the passed in credentials
and activate it in the current thread.
+ @param thd
+ @param definer_user
+ @param definer_host
+ @param db
@param[out] backup Save a pointer to the current security context
in the thread. In case of success it points to the
saved old context, otherwise it points to NULL.
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 7117c08a7e1..7875870bd1a 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -593,6 +593,22 @@ public:
uint32 query_length; // current query length
Server_side_cursor *cursor;
+ /**
+ Name of the current (default) database.
+
+ If there is the current (default) database, "db" contains its name. If
+ there is no current (default) database, "db" is NULL and "db_length" is
+ 0. In other words, "db", "db_length" must either be NULL, or contain a
+ valid database name.
+
+ @note this attribute is set and alloced by the slave SQL thread (for
+ the THD of that thread); that thread is (and must remain, for now) the
+ only responsible for freeing this member.
+ */
+
+ char *db;
+ uint db_length;
+
public:
/* This constructor is called for backup statements */
@@ -1024,18 +1040,21 @@ public:
*/
char *thread_stack;
+ /**
+ Currently selected catalog.
+ */
+ char *catalog;
+
/*
- db - currently selected database
- catalog - currently selected catalog
- WARNING: some members of THD (currently 'db', 'catalog' and 'query') are
- set and alloced by the slave SQL thread (for the THD of that thread); that
- thread is (and must remain, for now) the only responsible for freeing these
- 3 members. If you add members here, and you add code to set them in
- replication, don't forget to free_them_and_set_them_to_0 in replication
- properly. For details see the 'err:' label of the handle_slave_sql()
- in sql/slave.cc.
- */
- char *db, *catalog;
+ WARNING: some members of THD (currently 'Statement::db',
+ 'catalog' and 'query') are set and alloced by the slave SQL thread
+ (for the THD of that thread); that thread is (and must remain, for now)
+ the only responsible for freeing these 3 members. If you add members
+ here, and you add code to set them in replication, don't forget to
+ free_them_and_set_them_to_0 in replication properly. For details see
+ the 'err:' label of the handle_slave_sql() in sql/slave.cc.
+ */
+
Security_context main_security_ctx;
Security_context *security_ctx;
@@ -1390,7 +1409,6 @@ public:
uint tmp_table, global_read_lock;
uint server_status,open_options;
enum enum_thread_type system_thread;
- uint db_length;
uint select_number; //number of select (used for EXPLAIN)
/* variables.transaction_isolation is reset to this after each commit */
enum_tx_isolation session_tx_isolation;
@@ -1802,11 +1820,26 @@ public:
}
}
- /*
- Initialize the current database from a NULL-terminated string with length
- If we run out of memory, we free the current database and return TRUE.
- This way the user will notice the error as there will be no current
- database selected (in addition to the error message set by malloc).
+ /**
+ Set the current database; use deep copy of C-string.
+
+ @param new_db a pointer to the new database name.
+ @param new_db_len length of the new database name.
+
+ Initialize the current database from a NULL-terminated string with
+ length. If we run out of memory, we free the current database and
+ return TRUE. This way the user will notice the error as there will be
+ no current database selected (in addition to the error message set by
+ malloc).
+
+ @note This operation just sets {db, db_length}. Switching the current
+ database usually involves other actions, like switching other database
+ attributes including security context. In the future, this operation
+ will be made private and more convenient interface will be provided.
+
+ @return Operation status
+ @retval FALSE Success
+ @retval TRUE Out-of-memory error
*/
bool set_db(const char *new_db, size_t new_db_len)
{
@@ -1821,6 +1854,18 @@ public:
db_length= db ? new_db_len : 0;
return new_db && !db;
}
+
+ /**
+ Set the current database; use shallow copy of C-string.
+
+ @param new_db a pointer to the new database name.
+ @param new_db_len length of the new database name.
+
+ @note This operation just sets {db, db_length}. Switching the current
+ database usually involves other actions, like switching other database
+ attributes including security context. In the future, this operation
+ will be made private and more convenient interface will be provided.
+ */
void reset_db(char *new_db, size_t new_db_len)
{
db= new_db;
diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc
index 03b9908c1ad..6bb0f62d843 100644
--- a/sql/sql_connect.cc
+++ b/sql/sql_connect.cc
@@ -1008,6 +1008,11 @@ void prepare_new_connection_state(THD* thd)
if (thd->client_capabilities & CLIENT_COMPRESS)
thd->net.compress=1; // Use compression
+ /*
+ Much of this is duplicated in create_embedded_thd() for the
+ embedded server library.
+ TODO: refactor this to avoid code duplication there
+ */
thd->version= refresh_version;
thd->proc_info= 0;
thd->command= COM_SLEEP;
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 910f4216452..cd7ad048802 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -39,6 +39,10 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp,
static long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path);
static my_bool rm_dir_w_symlink(const char *org_path, my_bool send_error);
+static void mysql_change_db_impl(THD *thd,
+ LEX_STRING *new_db_name,
+ ulong new_db_access,
+ CHARSET_INFO *new_db_charset);
/* Database lock hash */
@@ -997,7 +1001,7 @@ exit:
it to 0.
*/
if (thd->db && !strcmp(thd->db, db))
- thd->set_db(NULL, 0);
+ mysql_change_db_impl(thd, NULL, 0, thd->variables.collation_server);
VOID(pthread_mutex_unlock(&LOCK_mysql_create_db));
start_waiting_global_read_lock(thd);
exit2:
@@ -1355,22 +1359,108 @@ static void mysql_change_db_impl(THD *thd,
}
+
/**
- @brief Change the current database.
+ Backup the current database name before switch.
+
+ @param[in] thd thread handle
+ @param[in, out] saved_db_name IN: "str" points to a buffer where to store
+ the old database name, "length" contains the
+ buffer size
+ OUT: if the current (default) database is
+ not NULL, its name is copied to the
+ buffer pointed at by "str"
+ and "length" is updated accordingly.
+ Otherwise "str" is set to NULL and
+ "length" is set to 0.
+*/
+
+static void backup_current_db_name(THD *thd,
+ LEX_STRING *saved_db_name)
+{
+ if (!thd->db)
+ {
+ /* No current (default) database selected. */
+
+ saved_db_name->str= NULL;
+ saved_db_name->length= 0;
+ }
+ else
+ {
+ strmake(saved_db_name->str, thd->db, saved_db_name->length);
+ saved_db_name->length= thd->db_length;
+ }
+}
+
+
+/**
+ Return TRUE if db1_name is equal to db2_name, FALSE otherwise.
+
+ The function allows to compare database names according to the MySQL
+ rules. The database names db1 and db2 are equal if:
+ - db1 is NULL and db2 is NULL;
+ or
+ - db1 is not-NULL, db2 is not-NULL, db1 is equal (ignoring case) to
+ db2 in system character set (UTF8).
+*/
+
+static inline bool
+cmp_db_names(const char *db1_name,
+ const char *db2_name)
+{
+ return
+ /* db1 is NULL and db2 is NULL */
+ !db1_name && !db2_name ||
+
+ /* db1 is not-NULL, db2 is not-NULL, db1 == db2. */
+ db1_name && db2_name &&
+ my_strcasecmp(system_charset_info, db1_name, db2_name) == 0;
+}
+
+
+/**
+ @brief Change the current database and its attributes unconditionally.
@param thd thread handle
- @param name database name
- @param force_switch if this flag is set (TRUE), mysql_change_db() will
- switch to NULL db if the specified database is not
- available anymore. Corresponding warning will be
- thrown in this case. This flag is used to change
- database in stored-routine-execution code.
-
- @details Check that the database name corresponds to a valid and existent
- database, check access rights (unless called with no_access_check), and
- set the current database. This function is called to change the current
- database upon user request (COM_CHANGE_DB command) or temporarily, to
- execute a stored routine.
+ @param new_db_name database name
+ @param force_switch if force_switch is FALSE, then the operation will fail if
+
+ - new_db_name is NULL or empty;
+
+ - OR new database name is invalid
+ (check_db_name() failed);
+
+ - OR user has no privilege on the new database;
+
+ - OR new database does not exist;
+
+ if force_switch is TRUE, then
+
+ - if new_db_name is NULL or empty, the current
+ database will be NULL, @@collation_database will
+ be set to @@collation_server, the operation will
+ succeed.
+
+ - if new database name is invalid
+ (check_db_name() failed), the current database
+ will be NULL, @@collation_database will be set to
+ @@collation_server, but the operation will fail;
+
+ - user privileges will not be checked
+ (THD::db_access however is updated);
+
+ TODO: is this really the intention?
+ (see sp-security.test).
+
+ - if new database does not exist,the current database
+ will be NULL, @@collation_database will be set to
+ @@collation_server, a warning will be thrown, the
+ operation will succeed.
+
+ @details The function checks that the database name corresponds to a
+ valid and existent database, checks access rights and changes the current
+ database with database attributes (@@collation_database session variable,
+ THD::db_access).
This function is not the only way to switch the database that is
currently employed. When the replication slave thread switches the
@@ -1407,8 +1497,13 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
if (force_switch)
{
/*
- This can only happen when we restore the old db in THD after
- execution of a routine is complete. Change db to NULL.
+ This can happen only if we're switching the current database back
+ after loading stored program. The thing is that loading of stored
+ program can happen when there is no current database.
+
+ TODO: actually, new_db_name and new_db_name->str seem to be always
+ non-NULL. In case of stored program, new_db_name->str == "" and
+ new_db_name->length == 0.
*/
mysql_change_db_impl(thd, NULL, 0, thd->variables.collation_server);
@@ -1426,7 +1521,7 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
if (my_strcasecmp(system_charset_info, new_db_name->str,
INFORMATION_SCHEMA_NAME.str) == 0)
{
- /* Switch database to INFORMATION_SCHEMA. */
+ /* Switch the current database to INFORMATION_SCHEMA. */
mysql_change_db_impl(thd, &INFORMATION_SCHEMA_NAME, SELECT_ACL,
system_charset_info);
@@ -1453,8 +1548,8 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
even if we are called from sp_head::execute().
It's next to impossible however to get this error when we are called
- from sp_head::execute(). But let's switch database to NULL in this case
- to be sure.
+ from sp_head::execute(). But let's switch the current database to NULL
+ in this case to be sure.
*/
if (check_db_name(&new_db_file_name))
@@ -1463,10 +1558,8 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
my_free(new_db_file_name.str, MYF(0));
if (force_switch)
- {
- /* Change db to NULL. */
mysql_change_db_impl(thd, NULL, 0, thd->variables.collation_server);
- }
+
DBUG_RETURN(TRUE);
}
@@ -1501,6 +1594,8 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
{
if (force_switch)
{
+ /* Throw a warning and free new_db_file_name. */
+
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
ER_BAD_DB_ERROR, ER(ER_BAD_DB_ERROR),
new_db_file_name.str);
@@ -1511,12 +1606,19 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
mysql_change_db_impl(thd, NULL, 0, thd->variables.collation_server);
+ /* The operation succeed. */
+
DBUG_RETURN(FALSE);
}
else
{
+ /* Report an error and free new_db_file_name. */
+
my_error(ER_BAD_DB_ERROR, MYF(0), new_db_file_name.str);
my_free(new_db_file_name.str, MYF(0));
+
+ /* The operation failed. */
+
DBUG_RETURN(TRUE);
}
}
@@ -1534,6 +1636,43 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
}
+/**
+ Change the current database and its attributes if needed.
+
+ @param thd thread handle
+ @param new_db_name database name
+ @param[in, out] saved_db_name IN: "str" points to a buffer where to store
+ the old database name, "length" contains the
+ buffer size
+ OUT: if the current (default) database is
+ not NULL, its name is copied to the
+ buffer pointed at by "str"
+ and "length" is updated accordingly.
+ Otherwise "str" is set to NULL and
+ "length" is set to 0.
+ @param force_switch @see mysql_change_db()
+ @param[out] cur_db_changed out-flag to indicate whether the current
+ database has been changed (valid only if
+ the function suceeded)
+*/
+
+bool mysql_opt_change_db(THD *thd,
+ const LEX_STRING *new_db_name,
+ LEX_STRING *saved_db_name,
+ bool force_switch,
+ bool *cur_db_changed)
+{
+ *cur_db_changed= !cmp_db_names(thd->db, new_db_name->str);
+
+ if (!*cur_db_changed)
+ return FALSE;
+
+ backup_current_db_name(thd, saved_db_name);
+
+ return mysql_change_db(thd, new_db_name, force_switch);
+}
+
+
static int
lock_databases(THD *thd, const char *db1, uint length1,
const char *db2, uint length2)
@@ -1829,7 +1968,7 @@ bool mysql_rename_db(THD *thd, LEX_STRING *old_db, LEX_STRING *new_db)
/* Step9: Let's do "use newdb" if we renamed the current database */
if (change_to_newdb)
- error|= mysql_change_db(thd, new_db, 0);
+ error|= mysql_change_db(thd, new_db, FALSE);
exit:
pthread_mutex_lock(&LOCK_lock_db);
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index 0e556f4c551..1adce48c539 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -119,6 +119,44 @@ static void mysql_ha_hash_free(TABLE_LIST *tables)
my_free((char*) tables, MYF(0));
}
+/**
+ Close a HANDLER table.
+
+ @param thd Thread identifier.
+ @param tables A list of tables with the first entry to close.
+
+ @note Though this function takes a list of tables, only the first list entry
+ will be closed.
+ @note Broadcasts refresh if it closed the table.
+*/
+
+static void mysql_ha_close_table(THD *thd, TABLE_LIST *tables)
+{
+ TABLE **table_ptr;
+
+ /*
+ Though we could take the table pointer from hash_tables->table,
+ we must follow the thd->handler_tables chain anyway, as we need the
+ address of the 'next' pointer referencing this table
+ for close_thread_table().
+ */
+ for (table_ptr= &(thd->handler_tables);
+ *table_ptr && (*table_ptr != tables->table);
+ table_ptr= &(*table_ptr)->next)
+ ;
+
+ if (*table_ptr)
+ {
+ (*table_ptr)->file->ha_index_or_rnd_end();
+ VOID(pthread_mutex_lock(&LOCK_open));
+ if (close_thread_table(thd, table_ptr))
+ {
+ /* Tell threads waiting for refresh that something has happened */
+ broadcast_refresh();
+ }
+ VOID(pthread_mutex_unlock(&LOCK_open));
+ }
+}
/*
Open a HANDLER table.
@@ -145,7 +183,7 @@ static void mysql_ha_hash_free(TABLE_LIST *tables)
bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen)
{
- TABLE_LIST *hash_tables;
+ TABLE_LIST *hash_tables = NULL;
char *db, *name, *alias;
uint dblen, namelen, aliaslen, counter;
int error;
@@ -197,7 +235,6 @@ bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen)
{
if (! reopen)
my_error(ER_ILLEGAL_HA, MYF(0), tables->alias);
- mysql_ha_close(thd, tables);
goto err;
}
@@ -225,11 +262,7 @@ bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen)
/* add to hash */
if (my_hash_insert(&thd->handler_tables_hash, (uchar*) hash_tables))
- {
- my_free((char*) hash_tables, MYF(0));
- mysql_ha_close(thd, tables);
goto err;
- }
}
if (! reopen)
@@ -238,13 +271,17 @@ bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen)
DBUG_RETURN(FALSE);
err:
+ if (hash_tables)
+ my_free((char*) hash_tables, MYF(0));
+ if (tables->table)
+ mysql_ha_close_table(thd, tables);
DBUG_PRINT("exit",("ERROR"));
DBUG_RETURN(TRUE);
}
/*
- Close a HANDLER table.
+ Close a HANDLER table by alias or table name
SYNOPSIS
mysql_ha_close()
@@ -252,9 +289,8 @@ err:
tables A list of tables with the first entry to close.
DESCRIPTION
- Though this function takes a list of tables, only the first list entry
- will be closed.
- Broadcasts refresh if it closed the table.
+ Closes the table that is associated (on the handler tables hash) with the
+ name (table->alias) of the specified table.
RETURN
FALSE ok
@@ -264,7 +300,6 @@ err:
bool mysql_ha_close(THD *thd, TABLE_LIST *tables)
{
TABLE_LIST *hash_tables;
- TABLE **table_ptr;
DBUG_ENTER("mysql_ha_close");
DBUG_PRINT("enter",("'%s'.'%s' as '%s'",
tables->db, tables->table_name, tables->alias));
@@ -273,28 +308,7 @@ bool mysql_ha_close(THD *thd, TABLE_LIST *tables)
(uchar*) tables->alias,
strlen(tables->alias) + 1)))
{
- /*
- Though we could take the table pointer from hash_tables->table,
- we must follow the thd->handler_tables chain anyway, as we need the
- address of the 'next' pointer referencing this table
- for close_thread_table().
- */
- for (table_ptr= &(thd->handler_tables);
- *table_ptr && (*table_ptr != hash_tables->table);
- table_ptr= &(*table_ptr)->next)
- ;
-
- if (*table_ptr)
- {
- (*table_ptr)->file->ha_index_or_rnd_end();
- VOID(pthread_mutex_lock(&LOCK_open));
- if (close_thread_table(thd, table_ptr))
- {
- /* Tell threads waiting for refresh that something has happened */
- broadcast_refresh();
- }
- VOID(pthread_mutex_unlock(&LOCK_open));
- }
+ mysql_ha_close_table(thd, hash_tables);
hash_delete(&thd->handler_tables_hash, (uchar*) hash_tables);
}
else
@@ -430,7 +444,7 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
cond->cleanup(); // File was reopened
if ((!cond->fixed &&
cond->fix_fields(thd, &cond)) || cond->check_cols(1))
- goto err0;
+ goto err;
}
if (keyname)
@@ -438,13 +452,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
if ((keyno=find_type(keyname, &table->s->keynames, 1+2)-1)<0)
{
my_error(ER_KEY_DOES_NOT_EXITS, MYF(0), keyname, tables->alias);
- goto err0;
+ goto err;
}
}
if (insert_fields(thd, &thd->lex->select_lex.context,
tables->db, tables->alias, &it, 0))
- goto err0;
+ goto err;
protocol->send_fields(&list, Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF);
@@ -758,48 +772,3 @@ static int mysql_ha_flush_table(THD *thd, TABLE **table_ptr, uint mode_flags)
DBUG_RETURN(0);
}
-
-
-/*
- Mark tables for reopen.
-
- SYNOPSIS
- mysql_ha_mark_tables_for_reopen()
- thd Thread identifier.
- table Table list to mark for reopen.
-
- DESCRIPTION
- For each table found in the handler hash mark it as closed
- (ready for reopen) and end all index/table scans.
-
- NOTE
- The caller must lock LOCK_open.
-*/
-
-void mysql_ha_mark_tables_for_reopen(THD *thd, TABLE *table)
-{
- DBUG_ENTER("mysql_ha_mark_tables_for_reopen");
-
- safe_mutex_assert_owner(&LOCK_open);
- for (; table; table= table->next)
- {
- /*
- Some elements in open table list, for example placeholders used for
- name-locking, can have alias set to 0.
- */
- if (table->alias)
- {
- TABLE_LIST *hash_tables;
- if ((hash_tables= (TABLE_LIST*) hash_search(&thd->handler_tables_hash,
- (uchar*) table->alias,
- strlen(table->alias) + 1)))
- {
- /* Mark table as ready for reopen. */
- hash_tables->table= NULL;
- /* End open index/table scans. */
- table->file->ha_index_or_rnd_end();
- }
- }
- }
- DBUG_VOID_RETURN;
-}
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 157309a3366..ebbf4cafb19 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -397,7 +397,7 @@ void upgrade_lock_type(THD *thd, thr_lock_type *lock_type,
if (duplic == DUP_UPDATE ||
duplic == DUP_REPLACE && *lock_type == TL_WRITE_CONCURRENT_INSERT)
{
- *lock_type= TL_WRITE;
+ *lock_type= TL_WRITE_DEFAULT;
return;
}
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 19264a17d2f..6b94505e46e 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -173,7 +173,7 @@ void Lex_input_stream::body_utf8_start(THD *thd, const char *begin_ptr)
}
/**
- The operation appends unprocessed part of pre-processed buffer till
+ @brief The operation appends unprocessed part of pre-processed buffer till
the given pointer (ptr) and sets m_cpp_utf8_processed_ptr to end_ptr.
The idea is that some tokens in the pre-processed buffer (like character
@@ -323,7 +323,6 @@ void lex_start(THD *thd)
lex->length=0;
lex->part_info= 0;
lex->select_lex.in_sum_expr=0;
- lex->select_lex.expr_list.empty();
lex->select_lex.ftfunc_list_alloc.empty();
lex->select_lex.ftfunc_list= &lex->select_lex.ftfunc_list_alloc;
lex->select_lex.group_list.empty();
@@ -720,6 +719,7 @@ static inline uint int_token(const char *str,uint length)
int MYSQLlex(void *arg, void *yythd)
{
reg1 uchar c;
+ bool comment_closed;
int tokval, result_state;
uint length;
enum my_lex_states state;
@@ -1212,7 +1212,10 @@ int MYSQLlex(void *arg, void *yythd)
/*
The special comment format is very strict:
'/' '*' '!', followed by exactly
- 2 digits (major), then 3 digits (minor).
+ 1 digit (major), 2 digits (minor), then 2 digits (dot).
+ 32302 -> 3.23.02
+ 50032 -> 5.0.32
+ 50114 -> 5.1.14
*/
char version_str[6];
version_str[0]= lip->yyPeekn(0);
@@ -1231,7 +1234,7 @@ int MYSQLlex(void *arg, void *yythd)
ulong version;
version=strtol(version_str, NULL, 10);
- /* Accept 'M' 'M' 'm' 'm' 'm' */
+ /* Accept 'M' 'm' 'm' 'd' 'd' */
lip->yySkipn(5);
if (version <= MYSQL_VERSION_ID)
@@ -1255,16 +1258,36 @@ int MYSQLlex(void *arg, void *yythd)
lip->yySkip(); // Accept /
lip->yySkip(); // Accept *
}
-
- while (! lip->eof() &&
- ((c=lip->yyGet()) != '*' || lip->yyPeek() != '/'))
+ /*
+ Discard:
+ - regular '/' '*' comments,
+ - special comments '/' '*' '!' for a future version,
+ by scanning until we find a closing '*' '/' marker.
+ Note: There is no such thing as nesting comments,
+ the first '*' '/' sequence seen will mark the end.
+ */
+ comment_closed= FALSE;
+ while (! lip->eof())
{
- if (c == '\n')
+ c= lip->yyGet();
+ if (c == '*')
+ {
+ if (lip->yyPeek() == '/')
+ {
+ lip->yySkip();
+ comment_closed= TRUE;
+ state = MY_LEX_START;
+ break;
+ }
+ }
+ else if (c == '\n')
lip->yylineno++;
}
- if (! lip->eof())
- lip->yySkip(); // remove last '/'
+ /* Unbalanced comments with a missing '*' '/' are a syntax error */
+ if (! comment_closed)
+ return (ABORT_SYM);
state = MY_LEX_START; // Try again
+ lip->in_comment= NO_COMMENT;
lip->set_echo(TRUE);
break;
case MY_LEX_END_LONG_COMMENT:
@@ -1316,6 +1339,9 @@ int MYSQLlex(void *arg, void *yythd)
lip->set_echo(FALSE);
lip->yySkip();
lip->set_echo(TRUE);
+ /* Unbalanced comments with a missing '*' '/' are a syntax error */
+ if (lip->in_comment != NO_COMMENT)
+ return (ABORT_SYM);
lip->next_state=MY_LEX_END; // Mark for next loop
return(END_OF_INPUT);
}
@@ -1400,6 +1426,19 @@ int MYSQLlex(void *arg, void *yythd)
}
+/**
+ Construct a copy of this object to be used for mysql_alter_table
+ and mysql_create_table.
+
+ Historically, these two functions modify their Alter_info
+ arguments. This behaviour breaks re-execution of prepared
+ statements and stored procedures and is compensated by always
+ supplying a copy of Alter_info to these functions.
+
+ @return You need to use check the error in THD for out
+ of memory condition after calling this function.
+*/
+
Alter_info::Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root)
:drop_list(rhs.drop_list, mem_root),
alter_list(rhs.alter_list, mem_root),
@@ -1517,6 +1556,7 @@ void st_select_lex::init_query()
*/
parent_lex->push_context(&context);
cond_count= between_count= with_wild= 0;
+ max_equal_elems= 0;
conds_processed_with_permanent_arena= 0;
ref_pointer_array= 0;
select_n_where_fields= 0;
@@ -1542,7 +1582,6 @@ void st_select_lex::init_select()
options= 0;
sql_cache= SQL_CACHE_UNSPECIFIED;
braces= 0;
- expr_list.empty();
interval_list.empty();
ftfunc_list_alloc.empty();
inner_sum_func_list= 0;
@@ -1737,7 +1776,7 @@ void st_select_lex_unit::exclude_tree()
'last' should be reachable from this st_select_lex_node
*/
-void st_select_lex::mark_as_dependent(SELECT_LEX *last)
+void st_select_lex::mark_as_dependent(st_select_lex *last)
{
/*
Mark all selects from resolved to 1 before select where was
@@ -2355,7 +2394,7 @@ st_lex::copy_db_to(char **p_db, size_t *p_db_length) const
values - SELECT_LEX with initial values for counters
*/
-void st_select_lex_unit::set_limit(SELECT_LEX *sl)
+void st_select_lex_unit::set_limit(st_select_lex *sl)
{
ha_rows select_limit_val;
@@ -2885,7 +2924,7 @@ bool st_select_lex::add_index_hint (THD *thd, char *str, uint length)
partitioning or if only partitions to add or to split.
@note This needs to be outside of WITH_PARTITION_STORAGE_ENGINE since it
- is used from the sql parser that doesn't have any #ifdef's
+ is used from the sql parser that doesn't have any ifdef's
@retval TRUE Yes, it is part of a management partition command
@retval FALSE No, not a management partition command
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 11273bba314..da0134a7f72 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -13,6 +13,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/**
+ @defgroup Semantic_Analysis Semantic Analysis
+*/
/* YACC and LEX Definitions */
@@ -593,7 +596,6 @@ public:
const char *type; /* type of select for EXPLAIN */
SQL_LIST order_list; /* ORDER clause */
- List<List_item> expr_list;
SQL_LIST *gorder_list;
Item *select_limit, *offset_limit; /* LIMIT clause parameters */
// Arrays of pointers to top elements of all_fields list
@@ -606,7 +608,8 @@ public:
*/
uint select_n_having_items;
uint cond_count; /* number of arguments of and/or/xor in where/having/on */
- uint between_count; /* number of between predicates in where/having/on */
+ uint between_count; /* number of between predicates in where/having/on */
+ uint max_equal_elems; /* maximal number of elements in multiple equalities */
/*
Number of fields used in select list or where clause of current select
and all inner subselects.
@@ -859,8 +862,8 @@ public:
uint no_parts;
enum_alter_table_change_level change_level;
Create_field *datetime_field;
- bool error_if_not_empty;
-
+ bool error_if_not_empty;
+
Alter_info() :
flags(0),
@@ -887,16 +890,6 @@ public:
datetime_field= 0;
error_if_not_empty= FALSE;
}
- /**
- Construct a copy of this object to be used for mysql_alter_table
- and mysql_create_table. Historically, these two functions modify
- their Alter_info arguments. This behaviour breaks re-execution of
- prepared statements and stored procedures and is compensated by
- always supplying a copy of Alter_info to these functions.
-
- @return You need to use check the error in THD for out
- of memory condition after calling this function.
- */
Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root);
private:
Alter_info &operator=(const Alter_info &rhs); // not implemented
@@ -1102,8 +1095,9 @@ enum enum_comment_state
/**
- This class represents the character input stream consumed during
+ @brief This class represents the character input stream consumed during
lexical analysis.
+
In addition to consuming the input stream, this class performs some
comment pre processing, by filtering out out of bound special text
from the query input stream.
@@ -1113,6 +1107,7 @@ enum enum_comment_state
is the pre-processed buffer that contains only the query text that
should be seen once out-of-bound data is removed.
*/
+
class Lex_input_stream
{
public:
@@ -1121,6 +1116,7 @@ public:
/**
Set the echo mode.
+
When echo is true, characters parsed from the raw input stream are
preserved. When false, characters parsed are silently ignored.
@param echo the echo mode.
@@ -1516,9 +1512,9 @@ typedef struct st_lex : public Query_tables_list
/** End of SELECT of CREATE VIEW statement */
const char* create_view_select_end;
- /** Start of 'ON <table>', in trigger statements. */
+ /** Start of 'ON table', in trigger statements. */
const char* raw_trg_on_table_name_begin;
- /** End of 'ON <table>', in trigger statements. */
+ /** End of 'ON table', in trigger statements. */
const char* raw_trg_on_table_name_end;
/* Partition info structure filled in by PARTITION BY parse part */
@@ -1830,4 +1826,8 @@ extern void trim_whitespace(CHARSET_INFO *cs, LEX_STRING *str);
extern bool is_lex_native_function(const LEX_STRING *name);
+/**
+ @} (End of group Semantic_Analysis)
+*/
+
#endif /* MYSQL_SERVER */
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 0d7158a4eee..bbd6cb16d11 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -28,6 +28,11 @@
#include "events.h"
#include "sql_trigger.h"
+/**
+ @defgroup Runtime_Environment Runtime Environment
+ @{
+*/
+
/* Used in error handling only */
#define SP_TYPE_STRING(LP) \
((LP)->sphead->m_type == TYPE_ENUM_FUNCTION ? "FUNCTION" : "PROCEDURE")
@@ -3376,6 +3381,8 @@ end_with_restore_list:
}
case SQLCOM_REVOKE_ALL:
{
+ if (end_active_trans(thd))
+ goto error;
if (check_access(thd, UPDATE_ACL, "mysql", 0, 1, 1, 0) &&
check_global_access(thd,CREATE_USER_ACL))
break;
@@ -3387,6 +3394,9 @@ end_with_restore_list:
case SQLCOM_REVOKE:
case SQLCOM_GRANT:
{
+ if (end_active_trans(thd))
+ goto error;
+
if (check_access(thd, lex->grant | lex->grant_tot_col | GRANT_ACL,
first_table ? first_table->db : select_lex->db,
first_table ? &first_table->grant.privilege : 0,
@@ -5375,11 +5385,12 @@ void mysql_init_multi_delete(LEX *lex)
/**
Parse a query.
- @param thd Current thread
- @param inBuf Begining of the query text
- @param length Length of the query text
- @param [out] semicolon For multi queries, position of the character of
- the next query in the query text.
+
+ @param thd Current thread
+ @param inBuf Begining of the query text
+ @param length Length of the query text
+ @param[out] found_semicolon For multi queries, position of the character of
+ the next query in the query text.
*/
void mysql_parse(THD *thd, const char *inBuf, uint length,
@@ -7246,3 +7257,7 @@ bool parse_sql(THD *thd,
return err_status;
}
+
+/**
+ @} (end of group Runtime_Environment)
+*/
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 6da6517b0f5..2d33da29b77 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -2449,7 +2449,7 @@ void plugin_thdvar_cleanup(THD *thd)
/**
@brief Free values of thread variables of a plugin.
- @detail This must be called before a plugin is deleted. Otherwise its
+ This must be called before a plugin is deleted. Otherwise its
variables are no longer accessible and the value space is lost. Note
that only string values with PLUGIN_VAR_MEMALLOC are allocated and
must be freed.
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index a97bd908468..9337a2aa329 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -112,7 +112,6 @@ public:
/****************************************************************************/
/**
- @class Prepared_statement
@brief Prepared_statement: a statement that can contain placeholders
*/
@@ -2869,6 +2868,19 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len)
init_param_array(this);
lex->set_trg_event_type_for_tables();
+ /* Remember the current database. */
+
+ if (thd->db && thd->db_length)
+ {
+ db= this->strmake(thd->db, thd->db_length);
+ db_length= thd->db_length;
+ }
+ else
+ {
+ db= NULL;
+ db_length= 0;
+ }
+
/*
While doing context analysis of the query (in check_prepared_statement)
we allocate a lot of additional memory: for open tables, JOINs, derived
@@ -2975,6 +2987,13 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
Query_arena *old_stmt_arena;
bool error= TRUE;
+ char saved_cur_db_name_buf[NAME_LEN+1];
+ LEX_STRING saved_cur_db_name=
+ { saved_cur_db_name_buf, sizeof(saved_cur_db_name_buf) };
+ bool cur_db_changed;
+
+ LEX_STRING stmt_db_name= { db, db_length };
+
status_var_increment(thd->status_var.com_stmt_execute);
/* Check if we got an error when sending long data */
@@ -3023,6 +3042,21 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
*/
thd->set_n_backup_statement(this, &stmt_backup);
+
+ /*
+ Change the current database (if needed).
+
+ Force switching, because the database of the prepared statement may be
+ NULL (prepared statements can be created while no current database
+ selected).
+ */
+
+ if (mysql_opt_change_db(thd, &stmt_db_name, &saved_cur_db_name, TRUE,
+ &cur_db_changed))
+ goto error;
+
+ /* Allocate query. */
+
if (expanded_query->length() &&
alloc_query(thd, (char*) expanded_query->ptr(),
expanded_query->length()+1))
@@ -3051,6 +3085,8 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
thd->protocol= protocol; /* activate stmt protocol */
+ /* Go! */
+
if (open_cursor)
error= mysql_open_cursor(thd, (uint) ALWAYS_MATERIALIZED_CURSOR,
&result, &cursor);
@@ -3069,6 +3105,17 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
}
}
+ /*
+ Restore the current database (if changed).
+
+ Force switching back to the saved current database (if changed),
+ because it may be NULL. In this case, mysql_change_db() would generate
+ an error.
+ */
+
+ if (cur_db_changed)
+ mysql_change_db(thd, &saved_cur_db_name, TRUE);
+
thd->protocol= &thd->protocol_text; /* use normal protocol */
/* Assert that if an error, no cursor is open */
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index f7b9e720155..fd3be1aef08 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -13,6 +13,10 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+/**
+ @defgroup Query_Optimizer Query Optimizer
+ @{
+*/
/* mysql_select and join optimization */
@@ -3562,10 +3566,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab,
uint and_level,i,found_eq_constant;
KEY_FIELD *key_fields, *end, *field;
uint sz;
- uint m= 1;
-
- if (cond_equal && cond_equal->max_members)
- m= cond_equal->max_members;
+ uint m= max(select_lex->max_equal_elems,1);
/*
We use the same piece of memory to store both KEY_FIELD
@@ -3585,7 +3586,8 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab,
it is considered as sargable only for its first argument.
Multiple equality can add elements that are filled after
substitution of field arguments by equal fields. There
- can be not more than cond_equal->max_members such substitutions.
+ can be not more than select_lex->max_equal_elems such
+ substitutions.
*/
sz= max(sizeof(KEY_FIELD),sizeof(SARGABLE_PARAM))*
(((thd->lex->current_select->cond_count+1)*2 +
@@ -7388,8 +7390,7 @@ static bool check_equality(THD *thd, Item *item, COND_EQUAL *cond_equal,
just an argument of a comparison predicate.
The function also determines the maximum number of members in
equality lists of each Item_cond_and object assigning it to
- cond_equal->max_members of this object and updating accordingly
- the upper levels COND_EQUAL structures.
+ thd->lex->current_select->max_equal_elems.
NOTES
Multiple equality predicate =(f1,..fn) is equivalent to the conjuction of
@@ -7434,7 +7435,6 @@ static COND *build_equal_items_for_cond(THD *thd, COND *cond,
COND_EQUAL *inherited)
{
Item_equal *item_equal;
- uint members;
COND_EQUAL cond_equal;
cond_equal.upper_levels= inherited;
@@ -7472,19 +7472,8 @@ static COND *build_equal_items_for_cond(THD *thd, COND *cond,
{
item_equal->fix_length_and_dec();
item_equal->update_used_tables();
- members= item_equal->members();
- if (cond_equal.max_members < members)
- cond_equal.max_members= members;
- }
- members= cond_equal.max_members;
- if (inherited && inherited->max_members < members)
- {
- do
- {
- inherited->max_members= members;
- inherited= inherited->upper_levels;
- }
- while (inherited);
+ set_if_bigger(thd->lex->current_select->max_equal_elems,
+ item_equal->members());
}
((Item_cond_and*)cond)->cond_equal= cond_equal;
@@ -7539,10 +7528,12 @@ static COND *build_equal_items_for_cond(THD *thd, COND *cond,
{
item_equal->fix_length_and_dec();
item_equal->update_used_tables();
- return item_equal;
}
else
- return eq_list.pop();
+ item_equal= (Item_equal *) eq_list.pop();
+ set_if_bigger(thd->lex->current_select->max_equal_elems,
+ item_equal->members());
+ return item_equal;
}
else
{
@@ -7558,9 +7549,8 @@ static COND *build_equal_items_for_cond(THD *thd, COND *cond,
{
item_equal->fix_length_and_dec();
item_equal->update_used_tables();
- members= item_equal->members();
- if (cond_equal.max_members < members)
- cond_equal.max_members= members;
+ set_if_bigger(thd->lex->current_select->max_equal_elems,
+ item_equal->members());
}
and_cond->cond_equal= cond_equal;
args->concat((List<Item> *)&cond_equal.current_level);
@@ -9418,7 +9408,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
bool using_unique_constraint= 0;
bool use_packed_rows= 0;
bool not_all_columns= !(select_options & TMP_TABLE_ALL_COLUMNS);
- char *tmpname, *tmppath, path[FN_REFLEN], table_name[NAME_LEN+1];
+ char *tmpname,path[FN_REFLEN];
uchar *pos, *group_buff, *bitmaps;
uchar *null_flags;
Field **reg_field, **from_field, **default_field;
@@ -9442,12 +9432,12 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
temp_pool_slot = bitmap_lock_set_next(&temp_pool);
if (temp_pool_slot != MY_BIT_NONE) // we got a slot
- sprintf(table_name, "%s_%lx_%i", tmp_file_prefix,
+ sprintf(path, "%s_%lx_%i", tmp_file_prefix,
current_pid, temp_pool_slot);
else
{
/* if we run out of slots or we are not using tempool */
- sprintf(table_name, "%s%lx_%lx_%x", tmp_file_prefix,current_pid,
+ sprintf(path,"%s%lx_%lx_%x", tmp_file_prefix,current_pid,
thd->thread_id, thd->tmp_table++);
}
@@ -9455,8 +9445,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
No need to change table name to lower case as we are only creating
MyISAM or HEAP tables here
*/
- fn_format(path, table_name, mysql_tmpdir, "",
- MY_REPLACE_EXT|MY_UNPACK_FILENAME);
+ fn_format(path, path, mysql_tmpdir, "", MY_REPLACE_EXT|MY_UNPACK_FILENAME);
+
if (group)
{
@@ -9502,8 +9492,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
sizeof(*key_part_info)*(param->group_parts+1),
&param->start_recinfo,
sizeof(*param->recinfo)*(field_count*2+4),
- &tmppath, (uint) strlen(path)+1,
- &tmpname, (uint) strlen(table_name)+1,
+ &tmpname, (uint) strlen(path)+1,
&group_buff, (group && ! using_unique_constraint ?
param->group_length : 0),
&bitmaps, bitmap_buffer_size(field_count)*2,
@@ -9522,8 +9511,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
DBUG_RETURN(NULL); /* purecov: inspected */
}
param->items_to_copy= copy_func;
- strmov(tmppath, path);
- strmov(tmpname, table_name);
+ strmov(tmpname,path);
/* make table according to fields */
bzero((char*) table,sizeof(*table));
@@ -9548,7 +9536,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
table->keys_in_use_for_query.init();
table->s= share;
- init_tmp_table_share(share, "", 0, tmpname, tmppath);
+ init_tmp_table_share(share, "", 0, tmpname, tmpname);
share->blob_field= blob_field;
share->blob_ptr_size= mi_portable_sizeof_char_ptr;
share->db_low_byte_first=1; // True for HEAP and MyISAM
@@ -16201,3 +16189,7 @@ bool JOIN::change_result(select_result *res)
}
DBUG_RETURN(FALSE);
}
+
+/**
+ @} (end of group Query_Optimizer)
+*/
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index bb4f5107df8..73adad222fb 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2464,8 +2464,8 @@ static COND * make_cond_for_info_schema(COND *cond, TABLE_LIST *table)
@param[in] thd thread handler
@param[in] cond WHERE condition
- @param[in] table I_S table
- @param[in, out] lookup_field_vals Struct which holds lookup values
+ @param[in] tables I_S table
+ @param[in, out] lookup_field_values Struct which holds lookup values
@return void
*/
@@ -3620,8 +3620,7 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables,
col_access= get_column_grant(thd, &tables->grant,
db_name->str, table_name->str,
field->field_name) & COL_ACLS;
- if (lex->sql_command != SQLCOM_SHOW_FIELDS &&
- !tables->schema_table && !col_access)
+ if (!tables->schema_table && !col_access)
continue;
end= tmp;
for (uint bitnr=0; col_access ; col_access>>=1,bitnr++)
@@ -4414,6 +4413,12 @@ static int get_schema_triggers_record(THD *thd, TABLE_LIST *tables,
{
Table_triggers_list *triggers= tables->table->triggers;
int event, timing;
+
+#ifndef NO_EMBEDDED_ACCESS_CHECKS
+ if (check_table_access(thd, TRIGGER_ACL, tables, 1))
+ goto ret;
+#endif
+
for (event= 0; event < (int)TRG_EVENT_MAX; event++)
{
for (timing= 0; timing < (int)TRG_ACTION_MAX; timing++)
@@ -4450,6 +4455,9 @@ static int get_schema_triggers_record(THD *thd, TABLE_LIST *tables,
}
}
}
+#ifndef NO_EMBEDDED_ACCESS_CHECKS
+ret:
+#endif
DBUG_RETURN(0);
}
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index b5dbc64e50b..cd39623f2b4 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -157,6 +157,7 @@ uint tablename_to_filename(const char *from, char *to, uint to_length)
SYNOPSIS
build_table_filename()
buff Where to write result in my_charset_filename.
+ This may be the same as table_name.
bufflen buff size
db Database name in system_charset_info.
table_name Table name in system_charset_info.
@@ -186,10 +187,11 @@ uint tablename_to_filename(const char *from, char *to, uint to_length)
uint build_table_filename(char *buff, size_t bufflen, const char *db,
const char *table_name, const char *ext, uint flags)
{
- uint length;
char dbbuff[FN_REFLEN];
char tbbuff[FN_REFLEN];
DBUG_ENTER("build_table_filename");
+ DBUG_PRINT("enter", ("db: '%s' table_name: '%s' ext: '%s' flags: %x",
+ db, table_name, ext, flags));
if (flags & FN_IS_TMP) // FN_FROM_IS_TMP | FN_TO_IS_TMP
strnmov(tbbuff, table_name, sizeof(tbbuff));
@@ -197,10 +199,18 @@ uint build_table_filename(char *buff, size_t bufflen, const char *db,
VOID(tablename_to_filename(table_name, tbbuff, sizeof(tbbuff)));
VOID(tablename_to_filename(db, dbbuff, sizeof(dbbuff)));
- length= strxnmov(buff, bufflen, mysql_data_home, FN_ROOTDIR, dbbuff,
- FN_ROOTDIR, tbbuff, ext, NullS) - buff;
+
+ char *end = buff + bufflen;
+ /* Don't add FN_ROOTDIR if mysql_data_home already includes it */
+ char *pos = strnmov(buff, mysql_data_home, bufflen);
+ int rootdir_len= strlen(FN_ROOTDIR);
+ if (pos - rootdir_len >= buff &&
+ memcmp(pos - rootdir_len, FN_ROOTDIR, rootdir_len) != 0)
+ pos= strnmov(pos, FN_ROOTDIR, end - pos);
+ pos= strxnmov(pos, end - pos, dbbuff, FN_ROOTDIR, tbbuff, ext, NullS);
+
DBUG_PRINT("exit", ("buff: '%s'", buff));
- DBUG_RETURN(length);
+ DBUG_RETURN(pos - buff);
}
diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc
index fa0154dc39e..ce26b025430 100644
--- a/sql/sql_trigger.cc
+++ b/sql/sql_trigger.cc
@@ -1882,7 +1882,7 @@ end:
@param thd
@param event
- @param time_type,
+ @param time_type
@param old_row_is_record1
@return Error status.
@@ -2074,9 +2074,9 @@ process_unknown_string(char *&unknown_key, uchar* base, MEM_ROOT *mem_root,
/**
Contruct path to TRN-file.
- @param thd[in] Thread context.
- @param trg_name[in] Trigger name.
- @param trn_path[out] Variable to store constructed path
+ @param[in] thd Thread context.
+ @param[in] trg_name Trigger name.
+ @param[out] trn_path Variable to store constructed path
*/
void build_trn_path(THD *thd, const sp_name *trg_name, LEX_STRING *trn_path)
@@ -2109,10 +2109,10 @@ bool check_trn_exists(const LEX_STRING *trn_path)
/**
Retrieve table name for given trigger.
- @param thd[in] Thread context.
- @param trg_name[in] Trigger name.
- @param trn_path[in] Path to the corresponding TRN-file.
- @param tbl_name[out] Variable to store retrieved table name.
+ @param[in] thd Thread context.
+ @param[in] trg_name Trigger name.
+ @param[in] trn_path Path to the corresponding TRN-file.
+ @param[out] tbl_name Variable to store retrieved table name.
@return Error status.
@retval FALSE on success.
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index cb3f2fece89..d4df805d006 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -86,10 +86,10 @@ static bool check_fields(THD *thd, List<Item> &items)
/**
@brief Re-read record if more columns are needed for error message.
- @detail If we got a duplicate key error, we want to write an error
- message containing the value of the duplicate key. If we do not have
- all fields of the key value in record[0], we need to re-read the
- record with a proper read_set.
+ If we got a duplicate key error, we want to write an error
+ message containing the value of the duplicate key. If we do not have
+ all fields of the key value in record[0], we need to re-read the
+ record with a proper read_set.
@param[in] error error number
@param[in] table table
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 9a46bbc39e4..38d7174b7ca 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -397,7 +397,13 @@ bool mysql_create_view(THD *thd, TABLE_LIST *views,
{
Item_field *field;
if ((field= item->filed_for_view_update()))
+ {
+ /*
+ any_privileges may be reset later by the Item_field::set_field
+ method in case of a system temporary table.
+ */
field->any_privileges= 1;
+ }
}
}
#endif
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index ddd63da9adb..ec3730412d0 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -15,8 +15,13 @@
/* sql_yacc.yy */
+/**
+ @defgroup Parser Parser
+ @{
+*/
+
%{
-/* thd is passed as an arg to yyparse(), and subsequently to yylex().
+/* thd is passed as an argument to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
@@ -26,7 +31,7 @@
#define MYSQL_YACC
#define YYINITDEPTH 100
-#define YYMAXDEPTH 3200 /* Because of 64K stack */
+#define YYMAXDEPTH 3200 /* Because of 64K stack */
#define Lex (YYTHD->lex)
#define Select Lex->current_select
#include "mysql_priv.h"
@@ -43,15 +48,27 @@
int yylex(void *yylval, void *yythd);
-const LEX_STRING null_lex_str={0,0};
-
-#define yyoverflow(A,B,C,D,E,F) {ulong val= *(F); if (my_yyoverflow((B), (D), &val)) { yyerror((char*) (A)); return 2; } else { *(F)= (YYSIZE_T)val; }}
+const LEX_STRING null_lex_str= {0,0};
+
+#define yyoverflow(A,B,C,D,E,F) \
+ { \
+ ulong val= *(F); \
+ if (my_yyoverflow((B), (D), &val)) \
+ { \
+ yyerror((char*) (A)); \
+ return 2; \
+ } \
+ else \
+ { \
+ *(F)= (YYSIZE_T)val; \
+ } \
+ }
#define MYSQL_YYABORT \
do \
- { \
+ { \
LEX::cleanup_lex_after_parse_error(YYTHD);\
- YYABORT; \
+ YYABORT; \
} while (0)
#define MYSQL_YYABORT_UNLESS(A) \
@@ -489,12 +506,12 @@ Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%}
-%pure_parser /* We have threads */
+%pure_parser /* We have threads */
/*
- Currently there is 286 shift/reduce conflict. We should not introduce
- new conflicts any more.
+ Currently there are 280 shift/reduce conflicts.
+ We should not introduce new conflicts any more.
*/
-%expect 286
+%expect 280
/*
Comments for TOKENS.
@@ -1072,43 +1089,45 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
/* A dummy token to force the priority of table_ref production in a join. */
%left TABLE_REF_PRIORITY
%left SET_VAR
-%left OR_OR_SYM OR_SYM OR2_SYM XOR
-%left AND_SYM AND_AND_SYM
-%left BETWEEN_SYM CASE_SYM WHEN_SYM THEN_SYM ELSE
-%left EQ EQUAL_SYM GE GT_SYM LE LT NE IS LIKE REGEXP IN_SYM
-%left '|'
-%left '&'
-%left SHIFT_LEFT SHIFT_RIGHT
-%left '-' '+'
-%left '*' '/' '%' DIV_SYM MOD_SYM
+%left OR_OR_SYM OR_SYM OR2_SYM
+%left XOR
+%left AND_SYM AND_AND_SYM
+%left BETWEEN_SYM CASE_SYM WHEN_SYM THEN_SYM ELSE
+%left EQ EQUAL_SYM GE GT_SYM LE LT NE IS LIKE REGEXP IN_SYM
+%left '|'
+%left '&'
+%left SHIFT_LEFT SHIFT_RIGHT
+%left '-' '+'
+%left '*' '/' '%' DIV_SYM MOD_SYM
%left '^'
-%left NEG '~'
-%right NOT_SYM NOT2_SYM
-%right BINARY COLLATE_SYM
+%left NEG '~'
+%right NOT_SYM NOT2_SYM
+%right BINARY COLLATE_SYM
+%left INTERVAL_SYM
%type <lex_str>
IDENT IDENT_QUOTED TEXT_STRING DECIMAL_NUM FLOAT_NUM NUM LONG_NUM HEX_NUM
- LEX_HOSTNAME ULONGLONG_NUM field_ident select_alias ident ident_or_text
+ LEX_HOSTNAME ULONGLONG_NUM field_ident select_alias ident ident_or_text
IDENT_sys TEXT_STRING_sys TEXT_STRING_literal
- NCHAR_STRING opt_component key_cache_name
+ NCHAR_STRING opt_component key_cache_name
sp_opt_label BIN_NUM label_ident TEXT_STRING_filesystem ident_or_empty
%type <lex_str_ptr>
- opt_table_alias
+ opt_table_alias
%type <table>
- table_ident table_ident_nodb references xid
+ table_ident table_ident_nodb references xid
%type <simple_string>
- remember_name remember_end opt_ident opt_db text_or_password
- opt_constraint constraint
+ remember_name remember_end opt_ident opt_db text_or_password
+ opt_constraint constraint
%type <string>
- text_string opt_gconcat_separator
+ text_string opt_gconcat_separator
%type <num>
- type int_type real_type order_dir lock_option
- udf_type if_exists opt_local opt_table_options table_options
+ type int_type real_type order_dir lock_option
+ udf_type if_exists opt_local opt_table_options table_options
table_option opt_if_not_exists opt_no_write_to_binlog
delete_option opt_temporary all_or_any opt_distinct
opt_ignore_leaves fulltext_options spatial_type union_option
@@ -1119,28 +1138,28 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
ev_alter_on_schedule_completion opt_ev_rename_to opt_ev_sql_stmt
%type <ulong_num>
- ulong_num real_ulong_num merge_insert_types
+ ulong_num real_ulong_num merge_insert_types
%type <ulonglong_number>
- ulonglong_num real_ulonglong_num size_number
+ ulonglong_num real_ulonglong_num size_number
%type <p_elem_value>
part_bit_expr
%type <lock_type>
- replace_lock_option opt_low_priority insert_lock_option load_data_lock
+ replace_lock_option opt_low_priority insert_lock_option load_data_lock
%type <item>
- literal text_literal insert_ident order_ident
- simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
- variable variable_aux bool_term bool_factor bool_test bool_pri
- predicate bit_expr bit_term bit_factor value_expr term factor
- table_wild simple_expr udf_expr
- expr_or_default set_expr_or_default interval_expr
- param_marker geometry_function
- signed_literal now_or_signed_literal opt_escape
- sp_opt_default
- simple_ident_nospvar simple_ident_q
+ literal text_literal insert_ident order_ident
+ simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
+ variable variable_aux bool_pri
+ predicate bit_expr
+ table_wild simple_expr udf_expr
+ expr_or_default set_expr_or_default interval_expr
+ param_marker geometry_function
+ signed_literal now_or_signed_literal opt_escape
+ sp_opt_default
+ simple_ident_nospvar simple_ident_q
field_or_var limit_option
part_func_expr
function_call_keyword
@@ -1149,29 +1168,29 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
function_call_conflict
%type <item_num>
- NUM_literal
+ NUM_literal
%type <item_list>
- expr_list udf_expr_list udf_expr_list2 when_list
- ident_list ident_list_arg opt_expr_list
+ expr_list opt_udf_expr_list udf_expr_list when_list
+ ident_list ident_list_arg opt_expr_list
%type <var_type>
option_type opt_var_type opt_var_ident_type
%type <key_type>
- key_type opt_unique_or_fulltext constraint_key_type
+ key_type opt_unique_or_fulltext constraint_key_type
%type <key_alg>
- btree_or_rtree
+ btree_or_rtree
%type <string_list>
- using_list
+ using_list
%type <key_part>
- key_part
+ key_part
%type <table_list>
- join_table_list join_table
+ join_table_list join_table
table_factor table_ref
select_derived derived_table_list
@@ -1197,58 +1216,58 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%type <lex_user> user grant_user
%type <charset>
- opt_collate
- charset_name
- charset_name_or_default
- old_or_new_charset_name
- old_or_new_charset_name_or_default
- collation_name
- collation_name_or_default
- opt_load_data_charset
+ opt_collate
+ charset_name
+ charset_name_or_default
+ old_or_new_charset_name
+ old_or_new_charset_name_or_default
+ collation_name
+ collation_name_or_default
+ opt_load_data_charset
UNDERSCORE_CHARSET
%type <variable> internal_variable_name
%type <select_lex> subselect subselect_init
- get_select_lex
+ get_select_lex
%type <boolfunc2creator> comp_op
%type <NONE>
- query verb_clause create change select do drop insert replace insert2
- insert_values update delete truncate rename
- show describe load alter optimize keycache preload flush
- reset purge begin commit rollback savepoint release
- slave master_def master_defs master_file_def slave_until_opts
- repair restore backup analyze check start checksum
- field_list field_list_item field_spec kill column_def key_def
- keycache_list assign_to_keycache preload_list preload_keys
- select_item_list select_item values_list no_braces
- opt_limit_clause delete_limit_clause fields opt_values values
- procedure_list procedure_list2 procedure_item
- expr_list2 udf_expr_list3 handler
- opt_precision opt_ignore opt_column opt_restrict
- grant revoke set lock unlock string_list field_options field_option
- field_opt_list opt_binary table_lock_list table_lock
- ref_list opt_on_delete opt_on_delete_list opt_on_delete_item use
- opt_delete_options opt_delete_option varchar nchar nvarchar
- opt_outer table_list table_name opt_option opt_place
- opt_attribute opt_attribute_list attribute column_list column_list_id
- opt_column_list grant_privileges grant_ident grant_list grant_option
- object_privilege object_privilege_list user_list rename_list
- clear_privileges flush_options flush_option
- equal optional_braces
- opt_mi_check_type opt_to mi_check_types normal_join
- db_to_db table_to_table_list table_to_table opt_table_list opt_as
- handler_rkey_function handler_read_or_scan
- single_multi table_wild_list table_wild_one opt_wild
- union_clause union_list
- precision subselect_start opt_and charset
- subselect_end select_var_list select_var_list_init help opt_len
- opt_extended_describe
+ query verb_clause create change select do drop insert replace insert2
+ insert_values update delete truncate rename
+ show describe load alter optimize keycache preload flush
+ reset purge begin commit rollback savepoint release
+ slave master_def master_defs master_file_def slave_until_opts
+ repair restore backup analyze check start checksum
+ field_list field_list_item field_spec kill column_def key_def
+ keycache_list assign_to_keycache preload_list preload_keys
+ select_item_list select_item values_list no_braces
+ opt_limit_clause delete_limit_clause fields opt_values values
+ procedure_list procedure_list2 procedure_item
+ handler
+ opt_precision opt_ignore opt_column opt_restrict
+ grant revoke set lock unlock string_list field_options field_option
+ field_opt_list opt_binary table_lock_list table_lock
+ ref_list opt_on_delete opt_on_delete_list opt_on_delete_item use
+ opt_delete_options opt_delete_option varchar nchar nvarchar
+ opt_outer table_list table_name opt_option opt_place
+ opt_attribute opt_attribute_list attribute column_list column_list_id
+ opt_column_list grant_privileges grant_ident grant_list grant_option
+ object_privilege object_privilege_list user_list rename_list
+ clear_privileges flush_options flush_option
+ equal optional_braces
+ opt_mi_check_type opt_to mi_check_types normal_join
+ db_to_db table_to_table_list table_to_table opt_table_list opt_as
+ handler_rkey_function handler_read_or_scan
+ single_multi table_wild_list table_wild_one opt_wild
+ union_clause union_list
+ precision subselect_start opt_and charset
+ subselect_end select_var_list select_var_list_init help opt_len
+ opt_extended_describe
prepare prepare_src execute deallocate
- statement sp_suid
- sp_c_chistics sp_a_chistics sp_chistic sp_c_chistic xa
+ statement sp_suid
+ sp_c_chistics sp_a_chistics sp_chistic sp_c_chistic xa
load_data opt_field_or_var_spec fields_or_vars opt_load_data_set_spec
definer view_replace_or_algorithm view_replace
view_algorithm view_or_trigger_or_sp_or_event
@@ -1256,7 +1275,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
view_suid view_tail view_list_opt view_list view_select
view_check_option trigger_tail sp_tail
install uninstall partition_entry binlog_base64_event
- init_key_options key_options key_opts key_opt key_using_alg
+ init_key_options key_options key_opts key_opt key_using_alg
server_def server_options_list server_option
END_OF_INPUT
@@ -1277,376 +1296,397 @@ END_OF_INPUT
%type <num> index_hint_clause
%type <NONE>
- '-' '+' '*' '/' '%' '(' ')'
- ',' '!' '{' '}' '&' '|' AND_SYM OR_SYM OR_OR_SYM BETWEEN_SYM CASE_SYM
- THEN_SYM WHEN_SYM DIV_SYM MOD_SYM OR2_SYM AND_AND_SYM
+ '-' '+' '*' '/' '%' '(' ')'
+ ',' '!' '{' '}' '&' '|' AND_SYM OR_SYM OR_OR_SYM BETWEEN_SYM CASE_SYM
+ THEN_SYM WHEN_SYM DIV_SYM MOD_SYM OR2_SYM AND_AND_SYM
%%
+/*
+ Indentation of grammar rules:
+
+rule: <-- starts at col 1
+ rule1a rule1b rule1c <-- starts at col 11
+ { <-- starts at col 11
+ code <-- starts at col 13, indentation is 2 spaces
+ }
+ | rule2a rule2b
+ {
+ code
+ }
+ ; <-- on a line by itself, starts at col 9
+
+ Also, please do not use any <TAB>, but spaces.
+ Having a uniform indentation in this file helps
+ code reviews, patches, merges, and make maintenance easier.
+ Tip: grep [[:cntrl:]] sql_yacc.yy
+ Thanks.
+*/
query:
- END_OF_INPUT
- {
- THD *thd= YYTHD;
- if (!thd->bootstrap &&
- (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
- {
- my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
- MYSQL_YYABORT;
- }
- else
- {
- thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
- }
- }
- | verb_clause END_OF_INPUT {};
+ END_OF_INPUT
+ {
+ THD *thd= YYTHD;
+ if (!thd->bootstrap &&
+ (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
+ {
+ my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
+ }
+ }
+ | verb_clause END_OF_INPUT {}
+ ;
verb_clause:
- statement
- | begin
- ;
+ statement
+ | begin
+ ;
/* Verb clauses, except begin */
statement:
- alter
- | analyze
- | backup
- | binlog_base64_event
- | call
- | change
- | check
- | checksum
- | commit
- | create
+ alter
+ | analyze
+ | backup
+ | binlog_base64_event
+ | call
+ | change
+ | check
+ | checksum
+ | commit
+ | create
| deallocate
- | delete
- | describe
- | do
- | drop
+ | delete
+ | describe
+ | do
+ | drop
| execute
- | flush
- | grant
- | handler
- | help
- | insert
+ | flush
+ | grant
+ | handler
+ | help
+ | insert
| install
- | kill
- | load
- | lock
- | optimize
+ | kill
+ | load
+ | lock
+ | optimize
| keycache
| partition_entry
- | preload
+ | preload
| prepare
- | purge
- | release
- | rename
- | repair
- | replace
- | reset
- | restore
- | revoke
- | rollback
- | savepoint
- | select
- | set
- | show
- | slave
- | start
- | truncate
+ | purge
+ | release
+ | rename
+ | repair
+ | replace
+ | reset
+ | restore
+ | revoke
+ | rollback
+ | savepoint
+ | select
+ | set
+ | show
+ | slave
+ | start
+ | truncate
| uninstall
- | unlock
- | update
- | use
- | xa
+ | unlock
+ | update
+ | use
+ | xa
;
deallocate:
- deallocate_or_drop PREPARE_SYM ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
- lex->prepared_stmt_name= $3;
- };
+ deallocate_or_drop PREPARE_SYM ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
+ lex->prepared_stmt_name= $3;
+ }
+ ;
deallocate_or_drop:
- DEALLOCATE_SYM |
- DROP
- ;
-
+ DEALLOCATE_SYM
+ | DROP
+ ;
prepare:
- PREPARE_SYM ident FROM prepare_src
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->sql_command= SQLCOM_PREPARE;
- lex->prepared_stmt_name= $2;
- };
+ PREPARE_SYM ident FROM prepare_src
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->sql_command= SQLCOM_PREPARE;
+ lex->prepared_stmt_name= $2;
+ }
+ ;
prepare_src:
- TEXT_STRING_sys
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->prepared_stmt_code= $1;
- lex->prepared_stmt_code_is_varref= FALSE;
- }
+ TEXT_STRING_sys
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->prepared_stmt_code= $1;
+ lex->prepared_stmt_code_is_varref= FALSE;
+ }
| '@' ident_or_text
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->prepared_stmt_code= $2;
- lex->prepared_stmt_code_is_varref= TRUE;
- };
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->prepared_stmt_code= $2;
+ lex->prepared_stmt_code_is_varref= TRUE;
+ }
+ ;
execute:
- EXECUTE_SYM ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->sql_command= SQLCOM_EXECUTE;
- lex->prepared_stmt_name= $2;
- }
- execute_using
- {}
+ EXECUTE_SYM ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->sql_command= SQLCOM_EXECUTE;
+ lex->prepared_stmt_name= $2;
+ }
+ execute_using
+ {}
;
execute_using:
- /* nothing */
+ /* nothing */
| USING execute_var_list
;
execute_var_list:
- execute_var_list ',' execute_var_ident
+ execute_var_list ',' execute_var_ident
| execute_var_ident
;
-execute_var_ident: '@' ident_or_text
- {
- LEX *lex=Lex;
- LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&$2, sizeof(LEX_STRING));
- if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
+execute_var_ident:
+ '@' ident_or_text
+ {
+ LEX *lex=Lex;
+ LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&$2, sizeof(LEX_STRING));
+ if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
MYSQL_YYABORT;
- }
+ }
;
/* help */
help:
- HELP_SYM
- {
- if (Lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
- MYSQL_YYABORT;
- }
- }
- ident_or_text
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_HELP;
- lex->help_arg= $3.str;
- };
+ HELP_SYM
+ {
+ if (Lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
+ MYSQL_YYABORT;
+ }
+ }
+ ident_or_text
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_HELP;
+ lex->help_arg= $3.str;
+ }
+ ;
/* change master */
change:
- CHANGE MASTER_SYM TO_SYM
- {
- LEX *lex = Lex;
- lex->sql_command = SQLCOM_CHANGE_MASTER;
- bzero((char*) &lex->mi, sizeof(lex->mi));
- }
- master_defs
- {}
- ;
+ CHANGE MASTER_SYM TO_SYM
+ {
+ LEX *lex = Lex;
+ lex->sql_command = SQLCOM_CHANGE_MASTER;
+ bzero((char*) &lex->mi, sizeof(lex->mi));
+ }
+ master_defs
+ {}
+ ;
master_defs:
- master_def
- | master_defs ',' master_def;
+ master_def
+ | master_defs ',' master_def
+ ;
master_def:
- MASTER_HOST_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.host = $3.str;
- }
- |
- MASTER_USER_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.user = $3.str;
- }
- |
- MASTER_PASSWORD_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.password = $3.str;
- }
- |
- MASTER_PORT_SYM EQ ulong_num
- {
- Lex->mi.port = $3;
- }
- |
- MASTER_CONNECT_RETRY_SYM EQ ulong_num
- {
- Lex->mi.connect_retry = $3;
- }
- | MASTER_SSL_SYM EQ ulong_num
- {
- Lex->mi.ssl= $3 ?
- LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
- }
- | MASTER_SSL_CA_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.ssl_ca= $3.str;
- }
- | MASTER_SSL_CAPATH_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.ssl_capath= $3.str;
- }
- | MASTER_SSL_CERT_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.ssl_cert= $3.str;
- }
- | MASTER_SSL_CIPHER_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.ssl_cipher= $3.str;
- }
- | MASTER_SSL_KEY_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.ssl_key= $3.str;
- }
- | MASTER_SSL_VERIFY_SERVER_CERT_SYM EQ ulong_num
- {
- Lex->mi.ssl_verify_server_cert= $3 ?
- LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
- }
- |
- master_file_def
- ;
+ MASTER_HOST_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.host = $3.str;
+ }
+ | MASTER_USER_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.user = $3.str;
+ }
+ | MASTER_PASSWORD_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.password = $3.str;
+ }
+ | MASTER_PORT_SYM EQ ulong_num
+ {
+ Lex->mi.port = $3;
+ }
+ | MASTER_CONNECT_RETRY_SYM EQ ulong_num
+ {
+ Lex->mi.connect_retry = $3;
+ }
+ | MASTER_SSL_SYM EQ ulong_num
+ {
+ Lex->mi.ssl= $3 ?
+ LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
+ }
+ | MASTER_SSL_CA_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.ssl_ca= $3.str;
+ }
+ | MASTER_SSL_CAPATH_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.ssl_capath= $3.str;
+ }
+ | MASTER_SSL_CERT_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.ssl_cert= $3.str;
+ }
+ | MASTER_SSL_CIPHER_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.ssl_cipher= $3.str;
+ }
+ | MASTER_SSL_KEY_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.ssl_key= $3.str;
+ }
+ | MASTER_SSL_VERIFY_SERVER_CERT_SYM EQ ulong_num
+ {
+ Lex->mi.ssl_verify_server_cert= $3 ?
+ LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
+ }
+ | master_file_def
+ ;
master_file_def:
- MASTER_LOG_FILE_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.log_file_name = $3.str;
- }
- | MASTER_LOG_POS_SYM EQ ulonglong_num
- {
- Lex->mi.pos = $3;
- /*
- If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
- instead of causing subsequent errors.
- We need to do it in this file, because only there we know that
- MASTER_LOG_POS has been explicitely specified. On the contrary
- in change_master() (sql_repl.cc) we cannot distinguish between 0
- (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
- whereas we want to distinguish (specified 0 means "read the binlog
- from 0" (4 in fact), unspecified means "don't change the position
- (keep the preceding value)").
- */
- Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
- }
- | RELAY_LOG_FILE_SYM EQ TEXT_STRING_sys
- {
- Lex->mi.relay_log_name = $3.str;
- }
- | RELAY_LOG_POS_SYM EQ ulong_num
- {
- Lex->mi.relay_log_pos = $3;
- /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
- Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
- }
- ;
+ MASTER_LOG_FILE_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.log_file_name = $3.str;
+ }
+ | MASTER_LOG_POS_SYM EQ ulonglong_num
+ {
+ Lex->mi.pos = $3;
+ /*
+ If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
+ instead of causing subsequent errors.
+ We need to do it in this file, because only there we know that
+ MASTER_LOG_POS has been explicitely specified. On the contrary
+ in change_master() (sql_repl.cc) we cannot distinguish between 0
+ (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
+ whereas we want to distinguish (specified 0 means "read the binlog
+ from 0" (4 in fact), unspecified means "don't change the position
+ (keep the preceding value)").
+ */
+ Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
+ }
+ | RELAY_LOG_FILE_SYM EQ TEXT_STRING_sys
+ {
+ Lex->mi.relay_log_name = $3.str;
+ }
+ | RELAY_LOG_POS_SYM EQ ulong_num
+ {
+ Lex->mi.relay_log_pos = $3;
+ /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
+ Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
+ }
+ ;
/* create a table */
create:
- CREATE opt_table_options TABLE_SYM opt_if_not_exists table_ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->sql_command= SQLCOM_CREATE_TABLE;
- if (!lex->select_lex.add_table_to_list(thd, $5, NULL,
- TL_OPTION_UPDATING,
- TL_WRITE))
- MYSQL_YYABORT;
- lex->alter_info.reset();
- lex->col_list.empty();
- lex->change=NullS;
- bzero((char*) &lex->create_info,sizeof(lex->create_info));
- lex->create_info.options=$2 | $4;
- lex->create_info.db_type= ha_default_handlerton(thd);
- lex->create_info.default_table_charset= NULL;
- lex->name.str= 0;
- lex->name.length= 0;
- }
- create2
- {
- LEX *lex= YYTHD->lex;
- lex->current_select= &lex->select_lex;
- if (!lex->create_info.db_type)
- {
- lex->create_info.db_type= ha_default_handlerton(YYTHD);
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
- ER_WARN_USING_OTHER_HANDLER,
- ER(ER_WARN_USING_OTHER_HANDLER),
- ha_resolve_storage_engine_name(lex->create_info.db_type),
- $5->table.str);
- }
- }
- | CREATE opt_unique_or_fulltext INDEX_SYM ident key_alg ON
- table_ident
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_CREATE_INDEX;
- if (!lex->current_select->add_table_to_list(lex->thd, $7,
- NULL,
- TL_OPTION_UPDATING))
- MYSQL_YYABORT;
+ CREATE opt_table_options TABLE_SYM opt_if_not_exists table_ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->sql_command= SQLCOM_CREATE_TABLE;
+ if (!lex->select_lex.add_table_to_list(thd, $5, NULL,
+ TL_OPTION_UPDATING,
+ TL_WRITE))
+ MYSQL_YYABORT;
+ lex->alter_info.reset();
+ lex->col_list.empty();
+ lex->change=NullS;
+ bzero((char*) &lex->create_info,sizeof(lex->create_info));
+ lex->create_info.options=$2 | $4;
+ lex->create_info.db_type= ha_default_handlerton(thd);
+ lex->create_info.default_table_charset= NULL;
+ lex->name.str= 0;
+ lex->name.length= 0;
+ }
+ create2
+ {
+ LEX *lex= YYTHD->lex;
+ lex->current_select= &lex->select_lex;
+ if (!lex->create_info.db_type)
+ {
+ lex->create_info.db_type= ha_default_handlerton(YYTHD);
+ push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
+ ER_WARN_USING_OTHER_HANDLER,
+ ER(ER_WARN_USING_OTHER_HANDLER),
+ ha_resolve_storage_engine_name(lex->create_info.db_type),
+ $5->table.str);
+ }
+ }
+ | CREATE opt_unique_or_fulltext INDEX_SYM ident key_alg ON
+ table_ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_CREATE_INDEX;
+ if (!lex->current_select->add_table_to_list(lex->thd, $7,
+ NULL,
+ TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
lex->alter_info.reset();
lex->alter_info.flags= ALTER_ADD_INDEX;
- lex->col_list.empty();
- lex->change=NullS;
- }
- '(' key_list ')' key_options
- {
- LEX *lex=Lex;
+ lex->col_list.empty();
+ lex->change=NullS;
+ }
+ '(' key_list ')' key_options
+ {
+ LEX *lex=Lex;
Key *key;
- if ($2 != Key::FULLTEXT && lex->key_create_info.parser_name.str)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
+ if ($2 != Key::FULLTEXT && lex->key_create_info.parser_name.str)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
key= new Key($2, $4.str, &lex->key_create_info, 0,
lex->col_list);
lex->alter_info.key_list.push_back(key);
- lex->col_list.empty();
- }
- | CREATE DATABASE opt_if_not_exists ident
- {
- Lex->create_info.default_table_charset= NULL;
- Lex->create_info.used_fields= 0;
- }
- opt_create_database_options
- {
- LEX *lex=Lex;
- lex->sql_command=SQLCOM_CREATE_DB;
- lex->name= $4;
+ lex->col_list.empty();
+ }
+ | CREATE DATABASE opt_if_not_exists ident
+ {
+ Lex->create_info.default_table_charset= NULL;
+ Lex->create_info.used_fields= 0;
+ }
+ opt_create_database_options
+ {
+ LEX *lex=Lex;
+ lex->sql_command=SQLCOM_CREATE_DB;
+ lex->name= $4;
lex->create_info.options=$3;
- }
- | CREATE
- {
+ }
+ | CREATE
+ {
Lex->create_view_mode= VIEW_CREATE_NEW;
Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
Lex->create_view_suid= TRUE;
- }
- view_or_trigger_or_sp_or_event
- {}
- | CREATE USER clear_privileges grant_list
- {
- Lex->sql_command = SQLCOM_CREATE_USER;
}
- | CREATE LOGFILE_SYM GROUP_SYM logfile_group_info
+ view_or_trigger_or_sp_or_event
+ {}
+ | CREATE USER clear_privileges grant_list
+ {
+ Lex->sql_command = SQLCOM_CREATE_USER;
+ }
+ | CREATE LOGFILE_SYM GROUP_SYM logfile_group_info
{
Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
}
@@ -1654,67 +1694,66 @@ create:
{
Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
}
- | CREATE server_def
- {
- Lex->sql_command= SQLCOM_CREATE_SERVER;
+ | CREATE server_def
+ {
+ Lex->sql_command= SQLCOM_CREATE_SERVER;
}
- ;
+ ;
+
server_def:
- SERVER_SYM ident_or_text FOREIGN DATA_SYM WRAPPER_SYM ident_or_text OPTIONS_SYM '(' server_options_list ')'
- {
- Lex->server_options.server_name= $2.str;
- Lex->server_options.server_name_length= $2.length;
- Lex->server_options.scheme= $6.str;
- }
+ SERVER_SYM
+ ident_or_text
+ FOREIGN DATA_SYM WRAPPER_SYM
+ ident_or_text
+ OPTIONS_SYM '(' server_options_list ')'
+ {
+ Lex->server_options.server_name= $2.str;
+ Lex->server_options.server_name_length= $2.length;
+ Lex->server_options.scheme= $6.str;
+ }
;
server_options_list:
- server_option
+ server_option
| server_options_list ',' server_option
;
server_option:
- USER TEXT_STRING_sys
- {
- Lex->server_options.username= $2.str;
- }
- |
- HOST_SYM TEXT_STRING_sys
- {
- Lex->server_options.host= $2.str;
- }
- |
- DATABASE TEXT_STRING_sys
- {
- Lex->server_options.db= $2.str;
- }
- |
- OWNER_SYM TEXT_STRING_sys
- {
- Lex->server_options.owner= $2.str;
- }
- |
- PASSWORD TEXT_STRING_sys
- {
- Lex->server_options.password= $2.str;
- }
- |
- SOCKET_SYM TEXT_STRING_sys
- {
- Lex->server_options.socket= $2.str;
- }
- |
- PORT_SYM ulong_num
- {
- Lex->server_options.port= $2;
- }
+ USER TEXT_STRING_sys
+ {
+ Lex->server_options.username= $2.str;
+ }
+ | HOST_SYM TEXT_STRING_sys
+ {
+ Lex->server_options.host= $2.str;
+ }
+ | DATABASE TEXT_STRING_sys
+ {
+ Lex->server_options.db= $2.str;
+ }
+ | OWNER_SYM TEXT_STRING_sys
+ {
+ Lex->server_options.owner= $2.str;
+ }
+ | PASSWORD TEXT_STRING_sys
+ {
+ Lex->server_options.password= $2.str;
+ }
+ | SOCKET_SYM TEXT_STRING_sys
+ {
+ Lex->server_options.socket= $2.str;
+ }
+ | PORT_SYM ulong_num
+ {
+ Lex->server_options.port= $2;
+ }
;
event_tail:
EVENT_SYM opt_if_not_exists sp_name
/*
- BE CAREFUL when you add a new rule to update the block where
- YYTHD->client_capabilities is set back to original value
+ BE CAREFUL when you add a new rule to update the block where
+ YYTHD->client_capabilities is set back to original value
*/
{
THD *thd= YYTHD;
@@ -1758,10 +1797,11 @@ event_tail:
*/
Lex->sql_command= SQLCOM_CREATE_EVENT;
}
- ;
+ ;
-ev_schedule_time: EVERY_SYM expr interval
- {
+ev_schedule_time:
+ EVERY_SYM expr interval
+ {
Lex->event_parse_data->item_expression= $2;
Lex->event_parse_data->interval= $3;
}
@@ -1773,7 +1813,8 @@ ev_schedule_time: EVERY_SYM expr interval
}
;
-opt_ev_status: /* empty */ { $$= 0; }
+opt_ev_status:
+ /* empty */ { $$= 0; }
| ENABLE_SYM
{
Lex->event_parse_data->status= Event_basic::ENABLED;
@@ -1789,9 +1830,10 @@ opt_ev_status: /* empty */ { $$= 0; }
Lex->event_parse_data->status= Event_basic::DISABLED;
$$= 1;
}
- ;
+ ;
-ev_starts: /* empty */
+ev_starts:
+ /* empty */
{
Lex->event_parse_data->item_starts= new Item_func_now_local();
}
@@ -1799,18 +1841,20 @@ ev_starts: /* empty */
{
Lex->event_parse_data->item_starts= $2;
}
- ;
+ ;
-ev_ends: /* empty */
+ev_ends:
+ /* empty */
| ENDS_SYM expr
{
Lex->event_parse_data->item_ends= $2;
}
- ;
+ ;
-opt_ev_on_completion: /* empty */ { $$= 0; }
+opt_ev_on_completion:
+ /* empty */ { $$= 0; }
| ev_on_completion
- ;
+ ;
ev_on_completion:
ON COMPLETION_SYM PRESERVE_SYM
@@ -1825,15 +1869,16 @@ ev_on_completion:
Event_basic::ON_COMPLETION_DROP;
$$= 1;
}
- ;
+ ;
-opt_ev_comment: /* empty */ { $$= 0; }
+opt_ev_comment:
+ /* empty */ { $$= 0; }
| COMMENT_SYM TEXT_STRING_sys
{
Lex->comment= Lex->event_parse_data->comment= $2;
$$= 1;
}
- ;
+ ;
ev_sql_stmt:
{
@@ -1869,7 +1914,7 @@ ev_sql_stmt:
lex->sphead->reset_thd_mem_root(thd);
lex->sphead->init(lex);
- lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);
+ lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);
lex->sphead->m_type= TYPE_ENUM_PROCEDURE;
@@ -1891,7 +1936,7 @@ ev_sql_stmt:
lex->event_parse_data->body_changed= TRUE;
}
- ;
+ ;
ev_sql_stmt_inner:
sp_proc_stmt_statement
@@ -1905,61 +1950,60 @@ ev_sql_stmt_inner:
| sp_proc_stmt_open
| sp_proc_stmt_fetch
| sp_proc_stmt_close
- ;
-
+ ;
clear_privileges:
- /* Nothing */
- {
- LEX *lex=Lex;
- lex->users_list.empty();
- lex->columns.empty();
- lex->grant= lex->grant_tot_col= 0;
- lex->all_privileges= 0;
- lex->select_lex.db= 0;
- lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
- lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
- bzero((char *)&(lex->mqh),sizeof(lex->mqh));
- }
+ /* Nothing */
+ {
+ LEX *lex=Lex;
+ lex->users_list.empty();
+ lex->columns.empty();
+ lex->grant= lex->grant_tot_col= 0;
+ lex->all_privileges= 0;
+ lex->select_lex.db= 0;
+ lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
+ lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
+ bzero((char *)&(lex->mqh),sizeof(lex->mqh));
+ }
;
sp_name:
- ident '.' ident
- {
+ ident '.' ident
+ {
if (!$1.str || check_db_name(&$1))
{
- my_error(ER_WRONG_DB_NAME, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- if (check_routine_name(&$3))
- {
- MYSQL_YYABORT;
- }
- $$= new sp_name($1, $3, true);
- $$->init_qname(YYTHD);
- }
- | ident
- {
+ my_error(ER_WRONG_DB_NAME, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ if (check_routine_name(&$3))
+ {
+ MYSQL_YYABORT;
+ }
+ $$= new sp_name($1, $3, true);
+ $$->init_qname(YYTHD);
+ }
+ | ident
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
LEX_STRING db;
- if (check_routine_name(&$1))
+ if (check_routine_name(&$1))
{
- MYSQL_YYABORT;
- }
+ MYSQL_YYABORT;
+ }
if (lex->copy_db_to(&db.str, &db.length))
MYSQL_YYABORT;
- $$= new sp_name(db, $1, false);
+ $$= new sp_name(db, $1, false);
if ($$)
- $$->init_qname(thd);
- }
- ;
+ $$->init_qname(thd);
+ }
+ ;
create_function_tail:
- RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys
- {
+ RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys
+ {
THD *thd= YYTHD;
- LEX *lex= thd->lex;
+ LEX *lex= thd->lex;
if (lex->definer != NULL)
{
/*
@@ -1968,7 +2012,7 @@ create_function_tail:
Using DEFINER with UDF has therefore no semantic,
and is considered a parsing error.
*/
- my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER");
+ my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER");
MYSQL_YYABORT;
}
if (is_native_function(thd, & lex->spname->m_name))
@@ -1977,17 +2021,17 @@ create_function_tail:
lex->spname->m_name.str);
MYSQL_YYABORT;
}
- lex->sql_command = SQLCOM_CREATE_FUNCTION;
- lex->udf.name = lex->spname->m_name;
- lex->udf.returns=(Item_result) $2;
- lex->udf.dl=$4.str;
- }
- | '('
- {
+ lex->sql_command = SQLCOM_CREATE_FUNCTION;
+ lex->udf.name = lex->spname->m_name;
+ lex->udf.returns=(Item_result) $2;
+ lex->udf.dl=$4.str;
+ }
+ | '('
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
Lex_input_stream *lip= thd->m_lip;
- sp_head *sp;
+ sp_head *sp;
const char* tmp_param_begin;
/*
@@ -2000,51 +2044,51 @@ create_function_tail:
MYSQL_YYABORT;
}
- if (lex->sphead)
- {
- my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
- MYSQL_YYABORT;
- }
- /* Order is important here: new - reset - init */
- sp= new sp_head();
- sp->reset_thd_mem_root(thd);
- sp->init(lex);
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
+ MYSQL_YYABORT;
+ }
+ /* Order is important here: new - reset - init */
+ sp= new sp_head();
+ sp->reset_thd_mem_root(thd);
+ sp->init(lex);
sp->init_sp_name(thd, lex->spname);
- sp->m_type= TYPE_ENUM_FUNCTION;
- lex->sphead= sp;
- /*
- We have to turn off CLIENT_MULTI_QUERIES while parsing a
- stored procedure, otherwise yylex will chop it into pieces
- at each ';'.
- */
+ sp->m_type= TYPE_ENUM_FUNCTION;
+ lex->sphead= sp;
+ /*
+ We have to turn off CLIENT_MULTI_QUERIES while parsing a
+ stored procedure, otherwise yylex will chop it into pieces
+ at each ';'.
+ */
$<ulong_num>$= thd->client_capabilities & CLIENT_MULTI_QUERIES;
- thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;
+ thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;
tmp_param_begin= lip->get_cpp_tok_start();
tmp_param_begin++;
lex->sphead->m_param_begin= tmp_param_begin;
- }
+ }
sp_fdparam_list ')'
- {
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
Lex_input_stream *lip= thd->m_lip;
lex->sphead->m_param_end= lip->get_cpp_tok_start();
- }
- RETURNS_SYM
- {
- LEX *lex= Lex;
- lex->charset= NULL;
- lex->length= lex->dec= NULL;
- lex->interval_list.empty();
- lex->type= 0;
- }
- type
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
+ }
+ RETURNS_SYM
+ {
+ LEX *lex= Lex;
+ lex->charset= NULL;
+ lex->length= lex->dec= NULL;
+ lex->interval_list.empty();
+ lex->type= 0;
+ }
+ type
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
/*
This was disabled in 5.1.12. See bug #20701
When collation support in SP is implemented, then this test
@@ -2062,28 +2106,28 @@ create_function_tail:
&sp->m_return_field_def))
MYSQL_YYABORT;
- bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
- }
- sp_c_chistics
- {
+ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
+ }
+ sp_c_chistics
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
Lex_input_stream *lip= thd->m_lip;
- lex->sphead->m_chistics= &lex->sp_chistics;
+ lex->sphead->m_chistics= &lex->sp_chistics;
lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
- }
- sp_proc_stmt
- {
+ }
+ sp_proc_stmt
+ {
THD *thd= YYTHD;
- LEX *lex= thd->lex;
- sp_head *sp= lex->sphead;
+ LEX *lex= thd->lex;
+ sp_head *sp= lex->sphead;
if (sp->is_not_allowed_in_function("function"))
MYSQL_YYABORT;
- lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
- sp->set_stmt_end(thd);
+ lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
+ sp->set_stmt_end(thd);
if (!(sp->m_flags & sp_head::HAS_RETURN))
{
my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
@@ -2124,76 +2168,76 @@ create_function_tail:
ER(ER_NATIVE_FCT_NAME_COLLISION),
sp->m_name.str);
}
- /* Restore flag if it was cleared above */
- thd->client_capabilities |= $<ulong_num>2;
- sp->restore_thd_mem_root(thd);
- }
- ;
+ /* Restore flag if it was cleared above */
+ thd->client_capabilities |= $<ulong_num>2;
+ sp->restore_thd_mem_root(thd);
+ }
+ ;
sp_a_chistics:
- /* Empty */ {}
- | sp_a_chistics sp_chistic {}
- ;
+ /* Empty */ {}
+ | sp_a_chistics sp_chistic {}
+ ;
sp_c_chistics:
- /* Empty */ {}
- | sp_c_chistics sp_c_chistic {}
- ;
+ /* Empty */ {}
+ | sp_c_chistics sp_c_chistic {}
+ ;
/* Characteristics for both create and alter */
sp_chistic:
- COMMENT_SYM TEXT_STRING_sys
- { Lex->sp_chistics.comment= $2; }
- | LANGUAGE_SYM SQL_SYM
- { /* Just parse it, we only have one language for now. */ }
- | NO_SYM SQL_SYM
- { Lex->sp_chistics.daccess= SP_NO_SQL; }
- | CONTAINS_SYM SQL_SYM
- { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
- | READS_SYM SQL_SYM DATA_SYM
- { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
- | MODIFIES_SYM SQL_SYM DATA_SYM
- { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
- | sp_suid
- { }
- ;
+ COMMENT_SYM TEXT_STRING_sys
+ { Lex->sp_chistics.comment= $2; }
+ | LANGUAGE_SYM SQL_SYM
+ { /* Just parse it, we only have one language for now. */ }
+ | NO_SYM SQL_SYM
+ { Lex->sp_chistics.daccess= SP_NO_SQL; }
+ | CONTAINS_SYM SQL_SYM
+ { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
+ | READS_SYM SQL_SYM DATA_SYM
+ { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
+ | MODIFIES_SYM SQL_SYM DATA_SYM
+ { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
+ | sp_suid
+ {}
+ ;
/* Create characteristics */
sp_c_chistic:
- sp_chistic { }
- | DETERMINISTIC_SYM { Lex->sp_chistics.detistic= TRUE; }
- | not DETERMINISTIC_SYM { Lex->sp_chistics.detistic= FALSE; }
- ;
+ sp_chistic { }
+ | DETERMINISTIC_SYM { Lex->sp_chistics.detistic= TRUE; }
+ | not DETERMINISTIC_SYM { Lex->sp_chistics.detistic= FALSE; }
+ ;
sp_suid:
- SQL_SYM SECURITY_SYM DEFINER_SYM
- {
- Lex->sp_chistics.suid= SP_IS_SUID;
- }
- | SQL_SYM SECURITY_SYM INVOKER_SYM
- {
- Lex->sp_chistics.suid= SP_IS_NOT_SUID;
- }
- ;
+ SQL_SYM SECURITY_SYM DEFINER_SYM
+ {
+ Lex->sp_chistics.suid= SP_IS_SUID;
+ }
+ | SQL_SYM SECURITY_SYM INVOKER_SYM
+ {
+ Lex->sp_chistics.suid= SP_IS_NOT_SUID;
+ }
+ ;
call:
- CALL_SYM sp_name
- {
- LEX *lex = Lex;
-
- lex->sql_command= SQLCOM_CALL;
- lex->spname= $2;
- lex->value_list.empty();
- sp_add_used_routine(lex, YYTHD, $2, TYPE_ENUM_PROCEDURE);
- }
+ CALL_SYM sp_name
+ {
+ LEX *lex = Lex;
+
+ lex->sql_command= SQLCOM_CALL;
+ lex->spname= $2;
+ lex->value_list.empty();
+ sp_add_used_routine(lex, YYTHD, $2, TYPE_ENUM_PROCEDURE);
+ }
opt_sp_cparam_list {}
- ;
+ ;
/* CALL parameters */
opt_sp_cparam_list:
- /* Empty */
- | '(' opt_sp_cparams ')'
- ;
+ /* Empty */
+ | '(' opt_sp_cparams ')'
+ ;
opt_sp_cparams:
/* Empty */
@@ -2201,58 +2245,58 @@ opt_sp_cparams:
;
sp_cparams:
- sp_cparams ',' expr
- {
- Lex->value_list.push_back($3);
- }
- | expr
- {
- Lex->value_list.push_back($1);
- }
- ;
+ sp_cparams ',' expr
+ {
+ Lex->value_list.push_back($3);
+ }
+ | expr
+ {
+ Lex->value_list.push_back($1);
+ }
+ ;
/* Stored FUNCTION parameter declaration list */
sp_fdparam_list:
- /* Empty */
- | sp_fdparams
- ;
+ /* Empty */
+ | sp_fdparams
+ ;
sp_fdparams:
- sp_fdparams ',' sp_fdparam
- | sp_fdparam
- ;
+ sp_fdparams ',' sp_fdparam
+ | sp_fdparam
+ ;
sp_init_param:
- /* Empty */
- {
- LEX *lex= Lex;
-
- lex->length= 0;
- lex->dec= 0;
- lex->type= 0;
-
- lex->default_value= 0;
- lex->on_update_value= 0;
-
- lex->comment= null_lex_str;
- lex->charset= NULL;
-
- lex->interval_list.empty();
- lex->uint_geom_type= 0;
- }
- ;
+ /* Empty */
+ {
+ LEX *lex= Lex;
+
+ lex->length= 0;
+ lex->dec= 0;
+ lex->type= 0;
+
+ lex->default_value= 0;
+ lex->on_update_value= 0;
+
+ lex->comment= null_lex_str;
+ lex->charset= NULL;
+
+ lex->interval_list.empty();
+ lex->uint_geom_type= 0;
+ }
+ ;
sp_fdparam:
- ident sp_init_param type
- {
- LEX *lex= Lex;
- sp_pcontext *spc= lex->spcont;
-
- if (spc->find_variable(&$1, TRUE))
- {
- my_error(ER_SP_DUP_PARAM, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
+ ident sp_init_param type
+ {
+ LEX *lex= Lex;
+ sp_pcontext *spc= lex->spcont;
+
+ if (spc->find_variable(&$1, TRUE))
+ {
+ my_error(ER_SP_DUP_PARAM, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
sp_variable_t *spvar= spc->push_variable(&$1,
(enum enum_field_types)$3,
sp_param_in);
@@ -2265,31 +2309,31 @@ sp_fdparam:
}
spvar->field_def.field_name= spvar->name.str;
spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
- }
- ;
+ }
+ ;
/* Stored PROCEDURE parameter declaration list */
sp_pdparam_list:
- /* Empty */
- | sp_pdparams
- ;
+ /* Empty */
+ | sp_pdparams
+ ;
sp_pdparams:
- sp_pdparams ',' sp_pdparam
- | sp_pdparam
- ;
+ sp_pdparams ',' sp_pdparam
+ | sp_pdparam
+ ;
sp_pdparam:
- sp_opt_inout sp_init_param ident type
- {
- LEX *lex= Lex;
- sp_pcontext *spc= lex->spcont;
-
- if (spc->find_variable(&$3, TRUE))
- {
- my_error(ER_SP_DUP_PARAM, MYF(0), $3.str);
- MYSQL_YYABORT;
- }
+ sp_opt_inout sp_init_param ident type
+ {
+ LEX *lex= Lex;
+ sp_pcontext *spc= lex->spcont;
+
+ if (spc->find_variable(&$3, TRUE))
+ {
+ my_error(ER_SP_DUP_PARAM, MYF(0), $3.str);
+ MYSQL_YYABORT;
+ }
sp_variable_t *spvar= spc->push_variable(&$3,
(enum enum_field_types)$4,
(sp_param_mode_t)$1);
@@ -2302,55 +2346,55 @@ sp_pdparam:
}
spvar->field_def.field_name= spvar->name.str;
spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
- }
- ;
+ }
+ ;
sp_opt_inout:
- /* Empty */ { $$= sp_param_in; }
- | IN_SYM { $$= sp_param_in; }
- | OUT_SYM { $$= sp_param_out; }
- | INOUT_SYM { $$= sp_param_inout; }
- ;
+ /* Empty */ { $$= sp_param_in; }
+ | IN_SYM { $$= sp_param_in; }
+ | OUT_SYM { $$= sp_param_out; }
+ | INOUT_SYM { $$= sp_param_inout; }
+ ;
sp_proc_stmts:
- /* Empty */ {}
- | sp_proc_stmts sp_proc_stmt ';'
- ;
+ /* Empty */ {}
+ | sp_proc_stmts sp_proc_stmt ';'
+ ;
sp_proc_stmts1:
- sp_proc_stmt ';' {}
- | sp_proc_stmts1 sp_proc_stmt ';'
- ;
+ sp_proc_stmt ';' {}
+ | sp_proc_stmts1 sp_proc_stmt ';'
+ ;
sp_decls:
- /* Empty */
- {
- $$.vars= $$.conds= $$.hndlrs= $$.curs= 0;
- }
- | sp_decls sp_decl ';'
- {
- /* We check for declarations out of (standard) order this way
- because letting the grammar rules reflect it caused tricky
- shift/reduce conflicts with the wrong result. (And we get
- better error handling this way.) */
- if (($2.vars || $2.conds) && ($1.curs || $1.hndlrs))
- { /* Variable or condition following cursor or handler */
- my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
+ /* Empty */
+ {
+ $$.vars= $$.conds= $$.hndlrs= $$.curs= 0;
+ }
+ | sp_decls sp_decl ';'
+ {
+ /* We check for declarations out of (standard) order this way
+ because letting the grammar rules reflect it caused tricky
+ shift/reduce conflicts with the wrong result. (And we get
+ better error handling this way.) */
+ if (($2.vars || $2.conds) && ($1.curs || $1.hndlrs))
+ { /* Variable or condition following cursor or handler */
+ my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
- MYSQL_YYABORT;
- }
- if ($2.curs && $1.hndlrs)
- { /* Cursor following handler */
- my_message(ER_SP_CURSOR_AFTER_HANDLER,
+ MYSQL_YYABORT;
+ }
+ if ($2.curs && $1.hndlrs)
+ { /* Cursor following handler */
+ my_message(ER_SP_CURSOR_AFTER_HANDLER,
ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
- MYSQL_YYABORT;
- }
- $$.vars= $1.vars + $2.vars;
- $$.conds= $1.conds + $2.conds;
- $$.hndlrs= $1.hndlrs + $2.hndlrs;
- $$.curs= $1.curs + $2.curs;
- }
- ;
+ MYSQL_YYABORT;
+ }
+ $$.vars= $1.vars + $2.vars;
+ $$.conds= $1.conds + $2.conds;
+ $$.hndlrs= $1.hndlrs + $2.hndlrs;
+ $$.curs= $1.curs + $2.curs;
+ }
+ ;
sp_decl:
DECLARE_SYM sp_decl_idents
@@ -2409,126 +2453,126 @@ sp_decl:
$$.vars= $2;
$$.conds= $$.hndlrs= $$.curs= 0;
}
- | DECLARE_SYM ident CONDITION_SYM FOR_SYM sp_cond
- {
- LEX *lex= Lex;
- sp_pcontext *spc= lex->spcont;
-
- if (spc->find_cond(&$2, TRUE))
- {
- my_error(ER_SP_DUP_COND, MYF(0), $2.str);
- MYSQL_YYABORT;
- }
- YYTHD->lex->spcont->push_cond(&$2, $5);
- $$.vars= $$.hndlrs= $$.curs= 0;
- $$.conds= 1;
- }
- | DECLARE_SYM sp_handler_type HANDLER_SYM FOR_SYM
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
+ | DECLARE_SYM ident CONDITION_SYM FOR_SYM sp_cond
+ {
+ LEX *lex= Lex;
+ sp_pcontext *spc= lex->spcont;
+
+ if (spc->find_cond(&$2, TRUE))
+ {
+ my_error(ER_SP_DUP_COND, MYF(0), $2.str);
+ MYSQL_YYABORT;
+ }
+ YYTHD->lex->spcont->push_cond(&$2, $5);
+ $$.vars= $$.hndlrs= $$.curs= 0;
+ $$.conds= 1;
+ }
+ | DECLARE_SYM sp_handler_type HANDLER_SYM FOR_SYM
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);
- sp_pcontext *ctx= lex->spcont;
- sp_instr_hpush_jump *i=
+ sp_pcontext *ctx= lex->spcont;
+ sp_instr_hpush_jump *i=
new sp_instr_hpush_jump(sp->instructions(), ctx, $2,
- ctx->current_var_count());
-
- sp->add_instr(i);
- sp->push_backpatch(i, ctx->push_label((char *)"", 0));
- }
- sp_hcond_list sp_proc_stmt
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont;
- sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
- sp_instr_hreturn *i;
-
- if ($2 == SP_HANDLER_CONTINUE)
- {
- i= new sp_instr_hreturn(sp->instructions(), ctx,
- ctx->current_var_count());
- sp->add_instr(i);
- }
- else
- { /* EXIT or UNDO handler, just jump to the end of the block */
- i= new sp_instr_hreturn(sp->instructions(), ctx, 0);
-
- sp->add_instr(i);
- sp->push_backpatch(i, lex->spcont->last_label()); /* Block end */
- }
- lex->sphead->backpatch(hlab);
+ ctx->current_var_count());
+
+ sp->add_instr(i);
+ sp->push_backpatch(i, ctx->push_label((char *)"", 0));
+ }
+ sp_hcond_list sp_proc_stmt
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+ sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
+ sp_instr_hreturn *i;
+
+ if ($2 == SP_HANDLER_CONTINUE)
+ {
+ i= new sp_instr_hreturn(sp->instructions(), ctx,
+ ctx->current_var_count());
+ sp->add_instr(i);
+ }
+ else
+ { /* EXIT or UNDO handler, just jump to the end of the block */
+ i= new sp_instr_hreturn(sp->instructions(), ctx, 0);
+
+ sp->add_instr(i);
+ sp->push_backpatch(i, lex->spcont->last_label()); /* Block end */
+ }
+ lex->sphead->backpatch(hlab);
lex->spcont= ctx->pop_context();
- $$.vars= $$.conds= $$.curs= 0;
- $$.hndlrs= $6;
- lex->spcont->add_handlers($6);
- }
- | DECLARE_SYM ident CURSOR_SYM FOR_SYM sp_cursor_stmt
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont;
- uint offp;
- sp_instr_cpush *i;
-
- if (ctx->find_cursor(&$2, &offp, TRUE))
- {
- my_error(ER_SP_DUP_CURS, MYF(0), $2.str);
- delete $5;
- MYSQL_YYABORT;
- }
+ $$.vars= $$.conds= $$.curs= 0;
+ $$.hndlrs= $6;
+ lex->spcont->add_handlers($6);
+ }
+ | DECLARE_SYM ident CURSOR_SYM FOR_SYM sp_cursor_stmt
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+ uint offp;
+ sp_instr_cpush *i;
+
+ if (ctx->find_cursor(&$2, &offp, TRUE))
+ {
+ my_error(ER_SP_DUP_CURS, MYF(0), $2.str);
+ delete $5;
+ MYSQL_YYABORT;
+ }
i= new sp_instr_cpush(sp->instructions(), ctx, $5,
ctx->current_cursor_count());
- sp->add_instr(i);
- ctx->push_cursor(&$2);
- $$.vars= $$.conds= $$.hndlrs= 0;
- $$.curs= 1;
- }
- ;
+ sp->add_instr(i);
+ ctx->push_cursor(&$2);
+ $$.vars= $$.conds= $$.hndlrs= 0;
+ $$.curs= 1;
+ }
+ ;
sp_cursor_stmt:
- {
- Lex->sphead->reset_lex(YYTHD);
-
- /*
- We use statement here just be able to get a better
- error message. Using 'select' works too, but will then
- result in a generic "syntax error" if a non-select
- statement is given.
- */
- }
- statement
- {
- LEX *lex= Lex;
-
- if (lex->sql_command != SQLCOM_SELECT &&
- !(sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND))
- {
- my_message(ER_SP_BAD_CURSOR_QUERY, ER(ER_SP_BAD_CURSOR_QUERY),
+ {
+ Lex->sphead->reset_lex(YYTHD);
+
+ /*
+ We use statement here just be able to get a better
+ error message. Using 'select' works too, but will then
+ result in a generic "syntax error" if a non-select
+ statement is given.
+ */
+ }
+ statement
+ {
+ LEX *lex= Lex;
+
+ if (lex->sql_command != SQLCOM_SELECT &&
+ !(sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND))
+ {
+ my_message(ER_SP_BAD_CURSOR_QUERY, ER(ER_SP_BAD_CURSOR_QUERY),
MYF(0));
- MYSQL_YYABORT;
- }
- if (lex->result)
- {
- my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
+ MYSQL_YYABORT;
+ }
+ if (lex->result)
+ {
+ my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
MYF(0));
- MYSQL_YYABORT;
- }
- lex->sp_lex_in_use= TRUE;
- $$= lex;
- lex->sphead->restore_lex(YYTHD);
- }
- ;
+ MYSQL_YYABORT;
+ }
+ lex->sp_lex_in_use= TRUE;
+ $$= lex;
+ lex->sphead->restore_lex(YYTHD);
+ }
+ ;
sp_handler_type:
- EXIT_SYM { $$= SP_HANDLER_EXIT; }
- | CONTINUE_SYM { $$= SP_HANDLER_CONTINUE; }
-/* | UNDO_SYM { QQ No yet } */
- ;
+ EXIT_SYM { $$= SP_HANDLER_EXIT; }
+ | CONTINUE_SYM { $$= SP_HANDLER_CONTINUE; }
+ /*| UNDO_SYM { QQ No yet } */
+ ;
sp_hcond_list:
sp_hcond_element
@@ -2538,174 +2582,175 @@ sp_hcond_list:
;
sp_hcond_element:
- sp_hcond
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont->parent_context();
-
- if (ctx->find_handler($1))
- {
- my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
- MYSQL_YYABORT;
- }
- else
- {
- sp_instr_hpush_jump *i=
+ sp_hcond
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont->parent_context();
+
+ if (ctx->find_handler($1))
+ {
+ my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ sp_instr_hpush_jump *i=
(sp_instr_hpush_jump *)sp->last_instruction();
- i->add_condition($1);
- ctx->push_handler($1);
- }
- }
- ;
+ i->add_condition($1);
+ ctx->push_handler($1);
+ }
+ }
+ ;
sp_cond:
- ulong_num
- { /* mysql errno */
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
- $$->type= sp_cond_type_t::number;
- $$->mysqlerr= $1;
- }
- | SQLSTATE_SYM opt_value TEXT_STRING_literal
- { /* SQLSTATE */
- if (!sp_cond_check(&$3))
- {
- my_error(ER_SP_BAD_SQLSTATE, MYF(0), $3.str);
- MYSQL_YYABORT;
- }
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
- $$->type= sp_cond_type_t::state;
- memcpy($$->sqlstate, $3.str, 5);
- $$->sqlstate[5]= '\0';
- }
- ;
+ ulong_num
+ { /* mysql errno */
+ $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
+ $$->type= sp_cond_type_t::number;
+ $$->mysqlerr= $1;
+ }
+ | SQLSTATE_SYM opt_value TEXT_STRING_literal
+ { /* SQLSTATE */
+ if (!sp_cond_check(&$3))
+ {
+ my_error(ER_SP_BAD_SQLSTATE, MYF(0), $3.str);
+ MYSQL_YYABORT;
+ }
+ $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
+ $$->type= sp_cond_type_t::state;
+ memcpy($$->sqlstate, $3.str, 5);
+ $$->sqlstate[5]= '\0';
+ }
+ ;
opt_value:
- /* Empty */ {}
- | VALUE_SYM {}
- ;
+ /* Empty */ {}
+ | VALUE_SYM {}
+ ;
sp_hcond:
- sp_cond
- {
- $$= $1;
- }
- | ident /* CONDITION name */
- {
- $$= Lex->spcont->find_cond(&$1);
- if ($$ == NULL)
- {
- my_error(ER_SP_COND_MISMATCH, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- }
- | SQLWARNING_SYM /* SQLSTATEs 01??? */
- {
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
- $$->type= sp_cond_type_t::warning;
- }
- | not FOUND_SYM /* SQLSTATEs 02??? */
- {
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
- $$->type= sp_cond_type_t::notfound;
- }
- | SQLEXCEPTION_SYM /* All other SQLSTATEs */
- {
- $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
- $$->type= sp_cond_type_t::exception;
- }
- ;
+ sp_cond
+ {
+ $$= $1;
+ }
+ | ident /* CONDITION name */
+ {
+ $$= Lex->spcont->find_cond(&$1);
+ if ($$ == NULL)
+ {
+ my_error(ER_SP_COND_MISMATCH, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ }
+ | SQLWARNING_SYM /* SQLSTATEs 01??? */
+ {
+ $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
+ $$->type= sp_cond_type_t::warning;
+ }
+ | not FOUND_SYM /* SQLSTATEs 02??? */
+ {
+ $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
+ $$->type= sp_cond_type_t::notfound;
+ }
+ | SQLEXCEPTION_SYM /* All other SQLSTATEs */
+ {
+ $$= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
+ $$->type= sp_cond_type_t::exception;
+ }
+ ;
sp_decl_idents:
- ident
- {
+ ident
+ {
/* NOTE: field definition is filled in sp_decl section. */
- LEX *lex= Lex;
- sp_pcontext *spc= lex->spcont;
-
- if (spc->find_variable(&$1, TRUE))
- {
- my_error(ER_SP_DUP_VAR, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- spc->push_variable(&$1, (enum_field_types)0, sp_param_in);
- $$= 1;
- }
- | sp_decl_idents ',' ident
- {
+ LEX *lex= Lex;
+ sp_pcontext *spc= lex->spcont;
+
+ if (spc->find_variable(&$1, TRUE))
+ {
+ my_error(ER_SP_DUP_VAR, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ spc->push_variable(&$1, (enum_field_types)0, sp_param_in);
+ $$= 1;
+ }
+ | sp_decl_idents ',' ident
+ {
/* NOTE: field definition is filled in sp_decl section. */
- LEX *lex= Lex;
- sp_pcontext *spc= lex->spcont;
+ LEX *lex= Lex;
+ sp_pcontext *spc= lex->spcont;
- if (spc->find_variable(&$3, TRUE))
- {
- my_error(ER_SP_DUP_VAR, MYF(0), $3.str);
- MYSQL_YYABORT;
- }
- spc->push_variable(&$3, (enum_field_types)0, sp_param_in);
- $$= $1 + 1;
- }
- ;
+ if (spc->find_variable(&$3, TRUE))
+ {
+ my_error(ER_SP_DUP_VAR, MYF(0), $3.str);
+ MYSQL_YYABORT;
+ }
+ spc->push_variable(&$3, (enum_field_types)0, sp_param_in);
+ $$= $1 + 1;
+ }
+ ;
sp_opt_default:
- /* Empty */ { $$ = NULL; }
+ /* Empty */ { $$ = NULL; }
| DEFAULT expr { $$ = $2; }
- ;
+ ;
sp_proc_stmt:
- sp_proc_stmt_statement
+ sp_proc_stmt_statement
| sp_proc_stmt_return
- | sp_proc_stmt_if
- | case_stmt_specification
- | sp_labeled_control
- | sp_proc_stmt_unlabeled
- | sp_proc_stmt_leave
- | sp_proc_stmt_iterate
- | sp_proc_stmt_open
- | sp_proc_stmt_fetch
+ | sp_proc_stmt_if
+ | case_stmt_specification
+ | sp_labeled_control
+ | sp_proc_stmt_unlabeled
+ | sp_proc_stmt_leave
+ | sp_proc_stmt_iterate
+ | sp_proc_stmt_open
+ | sp_proc_stmt_fetch
| sp_proc_stmt_close
;
sp_proc_stmt_if:
- IF { Lex->sphead->new_cont_backpatch(NULL); }
- sp_if END IF
- { Lex->sphead->do_cont_backpatch(); }
+ IF
+ { Lex->sphead->new_cont_backpatch(NULL); }
+ sp_if END IF
+ { Lex->sphead->do_cont_backpatch(); }
;
sp_proc_stmt_statement:
- {
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
Lex_input_stream *lip= thd->m_lip;
- lex->sphead->reset_lex(thd);
+ lex->sphead->reset_lex(thd);
lex->sphead->m_tmp_query= lip->get_tok_start();
- }
- statement
- {
+ }
+ statement
+ {
THD *thd= YYTHD;
LEX *lex= thd->lex;
Lex_input_stream *lip= thd->m_lip;
- sp_head *sp= lex->sphead;
+ sp_head *sp= lex->sphead;
sp->m_flags|= sp_get_flags_for_command(lex);
- if (lex->sql_command == SQLCOM_CHANGE_DB)
- { /* "USE db" doesn't work in a procedure */
- my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
- MYSQL_YYABORT;
- }
- /*
+ if (lex->sql_command == SQLCOM_CHANGE_DB)
+ { /* "USE db" doesn't work in a procedure */
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
+ MYSQL_YYABORT;
+ }
+ /*
Don't add an instruction for SET statements, since all
instructions for them were already added during processing
of "set" rule.
- */
+ */
DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
lex->var_list.is_empty());
if (lex->sql_command != SQLCOM_SET_OPTION)
- {
+ {
sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
lex->spcont, lex);
@@ -2723,259 +2768,258 @@ sp_proc_stmt_statement:
i->m_query.length);
sp->add_instr(i);
}
- sp->restore_lex(thd);
+ sp->restore_lex(thd);
}
;
sp_proc_stmt_return:
- RETURN_SYM
+ RETURN_SYM
{ Lex->sphead->reset_lex(YYTHD); }
expr
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
-
- if (sp->m_type != TYPE_ENUM_FUNCTION)
- {
- my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
- MYSQL_YYABORT;
- }
- else
- {
- sp_instr_freturn *i;
-
- i= new sp_instr_freturn(sp->instructions(), lex->spcont, $3,
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+
+ if (sp->m_type != TYPE_ENUM_FUNCTION)
+ {
+ my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ sp_instr_freturn *i;
+
+ i= new sp_instr_freturn(sp->instructions(), lex->spcont, $3,
sp->m_return_field_def.sql_type, lex);
- sp->add_instr(i);
- sp->m_flags|= sp_head::HAS_RETURN;
- }
- sp->restore_lex(YYTHD);
- }
+ sp->add_instr(i);
+ sp->m_flags|= sp_head::HAS_RETURN;
+ }
+ sp->restore_lex(YYTHD);
+ }
;
sp_proc_stmt_unlabeled:
- { /* Unlabeled controls get a secret label. */
- LEX *lex= Lex;
+ { /* Unlabeled controls get a secret label. */
+ LEX *lex= Lex;
- lex->spcont->push_label((char *)"", lex->sphead->instructions());
- }
- sp_unlabeled_control
- {
- LEX *lex= Lex;
+ lex->spcont->push_label((char *)"", lex->sphead->instructions());
+ }
+ sp_unlabeled_control
+ {
+ LEX *lex= Lex;
- lex->sphead->backpatch(lex->spcont->pop_label());
- }
+ lex->sphead->backpatch(lex->spcont->pop_label());
+ }
;
sp_proc_stmt_leave:
- LEAVE_SYM label_ident
- {
- LEX *lex= Lex;
- sp_head *sp = lex->sphead;
- sp_pcontext *ctx= lex->spcont;
- sp_label_t *lab= ctx->find_label($2.str);
-
- if (! lab)
- {
- my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", $2.str);
- MYSQL_YYABORT;
- }
- else
- {
- sp_instr_jump *i;
- uint ip= sp->instructions();
- uint n;
-
- n= ctx->diff_handlers(lab->ctx, TRUE); /* Exclusive the dest. */
- if (n)
- sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
- n= ctx->diff_cursors(lab->ctx, TRUE); /* Exclusive the dest. */
- if (n)
- sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
- i= new sp_instr_jump(ip, ctx);
- sp->push_backpatch(i, lab); /* Jumping forward */
+ LEAVE_SYM label_ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp = lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+ sp_label_t *lab= ctx->find_label($2.str);
+
+ if (! lab)
+ {
+ my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", $2.str);
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ sp_instr_jump *i;
+ uint ip= sp->instructions();
+ uint n;
+
+ n= ctx->diff_handlers(lab->ctx, TRUE); /* Exclusive the dest. */
+ if (n)
+ sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
+ n= ctx->diff_cursors(lab->ctx, TRUE); /* Exclusive the dest. */
+ if (n)
+ sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
+ i= new sp_instr_jump(ip, ctx);
+ sp->push_backpatch(i, lab); /* Jumping forward */
sp->add_instr(i);
- }
- }
+ }
+ }
;
sp_proc_stmt_iterate:
- ITERATE_SYM label_ident
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont;
- sp_label_t *lab= ctx->find_label($2.str);
-
- if (! lab || lab->type != SP_LAB_ITER)
- {
- my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", $2.str);
- MYSQL_YYABORT;
- }
- else
- {
- sp_instr_jump *i;
- uint ip= sp->instructions();
- uint n;
-
- n= ctx->diff_handlers(lab->ctx, FALSE); /* Inclusive the dest. */
- if (n)
- sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
- n= ctx->diff_cursors(lab->ctx, FALSE); /* Inclusive the dest. */
- if (n)
- sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
- i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
+ ITERATE_SYM label_ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+ sp_label_t *lab= ctx->find_label($2.str);
+
+ if (! lab || lab->type != SP_LAB_ITER)
+ {
+ my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", $2.str);
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ sp_instr_jump *i;
+ uint ip= sp->instructions();
+ uint n;
+
+ n= ctx->diff_handlers(lab->ctx, FALSE); /* Inclusive the dest. */
+ if (n)
+ sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
+ n= ctx->diff_cursors(lab->ctx, FALSE); /* Inclusive the dest. */
+ if (n)
+ sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
+ i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
sp->add_instr(i);
- }
- }
+ }
+ }
;
sp_proc_stmt_open:
- OPEN_SYM ident
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- uint offset;
- sp_instr_copen *i;
-
- if (! lex->spcont->find_cursor(&$2, &offset))
- {
- my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $2.str);
- MYSQL_YYABORT;
- }
- i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
- sp->add_instr(i);
- }
+ OPEN_SYM ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ uint offset;
+ sp_instr_copen *i;
+
+ if (! lex->spcont->find_cursor(&$2, &offset))
+ {
+ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $2.str);
+ MYSQL_YYABORT;
+ }
+ i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
+ sp->add_instr(i);
+ }
;
sp_proc_stmt_fetch:
- FETCH_SYM sp_opt_fetch_noise ident INTO
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- uint offset;
- sp_instr_cfetch *i;
-
- if (! lex->spcont->find_cursor(&$3, &offset))
- {
- my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $3.str);
- MYSQL_YYABORT;
- }
- i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
- sp->add_instr(i);
- }
- sp_fetch_list
- { }
+ FETCH_SYM sp_opt_fetch_noise ident INTO
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ uint offset;
+ sp_instr_cfetch *i;
+
+ if (! lex->spcont->find_cursor(&$3, &offset))
+ {
+ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $3.str);
+ MYSQL_YYABORT;
+ }
+ i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
+ sp->add_instr(i);
+ }
+ sp_fetch_list
+ {}
;
sp_proc_stmt_close:
- CLOSE_SYM ident
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- uint offset;
- sp_instr_cclose *i;
-
- if (! lex->spcont->find_cursor(&$2, &offset))
- {
- my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $2.str);
- MYSQL_YYABORT;
- }
- i= new sp_instr_cclose(sp->instructions(), lex->spcont, offset);
- sp->add_instr(i);
- }
- ;
+ CLOSE_SYM ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ uint offset;
+ sp_instr_cclose *i;
+
+ if (! lex->spcont->find_cursor(&$2, &offset))
+ {
+ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), $2.str);
+ MYSQL_YYABORT;
+ }
+ i= new sp_instr_cclose(sp->instructions(), lex->spcont, offset);
+ sp->add_instr(i);
+ }
+ ;
sp_opt_fetch_noise:
- /* Empty */
- | NEXT_SYM FROM
- | FROM
- ;
+ /* Empty */
+ | NEXT_SYM FROM
+ | FROM
+ ;
sp_fetch_list:
- ident
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *spc= lex->spcont;
- sp_variable_t *spv;
-
- if (!spc || !(spv = spc->find_variable(&$1)))
- {
- my_error(ER_SP_UNDECLARED_VAR, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- else
- {
- /* An SP local variable */
- sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();
-
- i->add_to_varlist(spv);
- }
- }
- |
- sp_fetch_list ',' ident
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *spc= lex->spcont;
- sp_variable_t *spv;
-
- if (!spc || !(spv = spc->find_variable(&$3)))
- {
- my_error(ER_SP_UNDECLARED_VAR, MYF(0), $3.str);
- MYSQL_YYABORT;
- }
- else
- {
- /* An SP local variable */
- sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();
-
- i->add_to_varlist(spv);
- }
- }
- ;
+ ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *spc= lex->spcont;
+ sp_variable_t *spv;
+
+ if (!spc || !(spv = spc->find_variable(&$1)))
+ {
+ my_error(ER_SP_UNDECLARED_VAR, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ /* An SP local variable */
+ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();
+
+ i->add_to_varlist(spv);
+ }
+ }
+ | sp_fetch_list ',' ident
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *spc= lex->spcont;
+ sp_variable_t *spv;
+
+ if (!spc || !(spv = spc->find_variable(&$3)))
+ {
+ my_error(ER_SP_UNDECLARED_VAR, MYF(0), $3.str);
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ /* An SP local variable */
+ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();
+
+ i->add_to_varlist(spv);
+ }
+ }
+ ;
sp_if:
{ Lex->sphead->reset_lex(YYTHD); }
expr THEN_SYM
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont;
- uint ip= sp->instructions();
- sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+ uint ip= sp->instructions();
+ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
$2, lex);
- sp->push_backpatch(i, ctx->push_label((char *)"", 0));
+ sp->push_backpatch(i, ctx->push_label((char *)"", 0));
sp->add_cont_backpatch(i);
sp->add_instr(i);
sp->restore_lex(YYTHD);
- }
- sp_proc_stmts1
- {
- sp_head *sp= Lex->sphead;
- sp_pcontext *ctx= Lex->spcont;
- uint ip= sp->instructions();
- sp_instr_jump *i = new sp_instr_jump(ip, ctx);
-
- sp->add_instr(i);
- sp->backpatch(ctx->pop_label());
- sp->push_backpatch(i, ctx->push_label((char *)"", 0));
- }
- sp_elseifs
- {
- LEX *lex= Lex;
-
- lex->sphead->backpatch(lex->spcont->pop_label());
- }
- ;
+ }
+ sp_proc_stmts1
+ {
+ sp_head *sp= Lex->sphead;
+ sp_pcontext *ctx= Lex->spcont;
+ uint ip= sp->instructions();
+ sp_instr_jump *i = new sp_instr_jump(ip, ctx);
+
+ sp->add_instr(i);
+ sp->backpatch(ctx->pop_label());
+ sp->push_backpatch(i, ctx->push_label((char *)"", 0));
+ }
+ sp_elseifs
+ {
+ LEX *lex= Lex;
+
+ lex->sphead->backpatch(lex->spcont->pop_label());
+ }
+ ;
sp_elseifs:
- /* Empty */
- | ELSEIF_SYM sp_if
- | ELSE sp_proc_stmts1
- ;
+ /* Empty */
+ | ELSEIF_SYM sp_if
+ | ELSE sp_proc_stmts1
+ ;
case_stmt_specification:
simple_case_stmt
@@ -3087,138 +3131,138 @@ else_clause_opt:
;
sp_labeled_control:
- label_ident ':'
- {
- LEX *lex= Lex;
- sp_pcontext *ctx= lex->spcont;
- sp_label_t *lab= ctx->find_label($1.str);
-
- if (lab)
- {
- my_error(ER_SP_LABEL_REDEFINE, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- else
- {
- lab= lex->spcont->push_label($1.str,
- lex->sphead->instructions());
- lab->type= SP_LAB_ITER;
- }
- }
- sp_unlabeled_control sp_opt_label
- {
- LEX *lex= Lex;
-
- if ($5.str)
- {
- sp_label_t *lab= lex->spcont->find_label($5.str);
-
- if (!lab ||
- my_strcasecmp(system_charset_info, $5.str, lab->name) != 0)
- {
- my_error(ER_SP_LABEL_MISMATCH, MYF(0), $5.str);
- MYSQL_YYABORT;
- }
- }
- lex->sphead->backpatch(lex->spcont->pop_label());
- }
- ;
+ label_ident ':'
+ {
+ LEX *lex= Lex;
+ sp_pcontext *ctx= lex->spcont;
+ sp_label_t *lab= ctx->find_label($1.str);
+
+ if (lab)
+ {
+ my_error(ER_SP_LABEL_REDEFINE, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ lab= lex->spcont->push_label($1.str,
+ lex->sphead->instructions());
+ lab->type= SP_LAB_ITER;
+ }
+ }
+ sp_unlabeled_control sp_opt_label
+ {
+ LEX *lex= Lex;
+
+ if ($5.str)
+ {
+ sp_label_t *lab= lex->spcont->find_label($5.str);
+
+ if (!lab ||
+ my_strcasecmp(system_charset_info, $5.str, lab->name) != 0)
+ {
+ my_error(ER_SP_LABEL_MISMATCH, MYF(0), $5.str);
+ MYSQL_YYABORT;
+ }
+ }
+ lex->sphead->backpatch(lex->spcont->pop_label());
+ }
+ ;
sp_opt_label:
- /* Empty */ { $$= null_lex_str; }
+ /* Empty */ { $$= null_lex_str; }
| label_ident { $$= $1; }
- ;
+ ;
sp_unlabeled_control:
- BEGIN_SYM
- { /* QQ This is just a dummy for grouping declarations and statements
- together. No [[NOT] ATOMIC] yet, and we need to figure out how
- make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
- LEX *lex= Lex;
- sp_label_t *lab= lex->spcont->last_label();
-
- lab->type= SP_LAB_BEGIN;
- lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
- }
- sp_decls
- sp_proc_stmts
- END
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- sp_pcontext *ctx= lex->spcont;
-
- sp->backpatch(ctx->last_label()); /* We always have a label */
- if ($3.hndlrs)
- sp->add_instr(new sp_instr_hpop(sp->instructions(), ctx,
- $3.hndlrs));
- if ($3.curs)
- sp->add_instr(new sp_instr_cpop(sp->instructions(), ctx,
- $3.curs));
- lex->spcont= ctx->pop_context();
- }
- | LOOP_SYM
- sp_proc_stmts1 END LOOP_SYM
- {
- LEX *lex= Lex;
- uint ip= lex->sphead->instructions();
- sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
- sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
-
- lex->sphead->add_instr(i);
- }
+ BEGIN_SYM
+ { /* QQ This is just a dummy for grouping declarations and statements
+ together. No [[NOT] ATOMIC] yet, and we need to figure out how
+ make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
+ LEX *lex= Lex;
+ sp_label_t *lab= lex->spcont->last_label();
+
+ lab->type= SP_LAB_BEGIN;
+ lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
+ }
+ sp_decls
+ sp_proc_stmts
+ END
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ sp_pcontext *ctx= lex->spcont;
+
+ sp->backpatch(ctx->last_label()); /* We always have a label */
+ if ($3.hndlrs)
+ sp->add_instr(new sp_instr_hpop(sp->instructions(), ctx,
+ $3.hndlrs));
+ if ($3.curs)
+ sp->add_instr(new sp_instr_cpop(sp->instructions(), ctx,
+ $3.curs));
+ lex->spcont= ctx->pop_context();
+ }
+ | LOOP_SYM
+ sp_proc_stmts1 END LOOP_SYM
+ {
+ LEX *lex= Lex;
+ uint ip= lex->sphead->instructions();
+ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
+ sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
+
+ lex->sphead->add_instr(i);
+ }
| WHILE_SYM
{ Lex->sphead->reset_lex(YYTHD); }
expr DO_SYM
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
- uint ip= sp->instructions();
- sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
- $3, lex);
-
- /* Jumping forward */
- sp->push_backpatch(i, lex->spcont->last_label());
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+ uint ip= sp->instructions();
+ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
+ $3, lex);
+
+ /* Jumping forward */
+ sp->push_backpatch(i, lex->spcont->last_label());
sp->new_cont_backpatch(i);
sp->add_instr(i);
sp->restore_lex(YYTHD);
- }
- sp_proc_stmts1 END WHILE_SYM
- {
- LEX *lex= Lex;
- uint ip= lex->sphead->instructions();
- sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
- sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
-
- lex->sphead->add_instr(i);
+ }
+ sp_proc_stmts1 END WHILE_SYM
+ {
+ LEX *lex= Lex;
+ uint ip= lex->sphead->instructions();
+ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
+ sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
+
+ lex->sphead->add_instr(i);
lex->sphead->do_cont_backpatch();
- }
+ }
| REPEAT_SYM sp_proc_stmts1 UNTIL_SYM
{ Lex->sphead->reset_lex(YYTHD); }
expr END REPEAT_SYM
- {
- LEX *lex= Lex;
- uint ip= lex->sphead->instructions();
- sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
- sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
+ {
+ LEX *lex= Lex;
+ uint ip= lex->sphead->instructions();
+ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
+ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
$5, lab->ip,
lex);
lex->sphead->add_instr(i);
lex->sphead->restore_lex(YYTHD);
/* We can shortcut the cont_backpatch here */
i->m_cont_dest= ip+1;
- }
- ;
+ }
+ ;
trg_action_time:
- BEFORE_SYM
+ BEFORE_SYM
{ Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
- | AFTER_SYM
+ | AFTER_SYM
{ Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
;
trg_event:
- INSERT
+ INSERT
{ Lex->trg_chistics.event= TRG_EVENT_INSERT; }
| UPDATE_SYM
{ Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
@@ -3241,156 +3285,157 @@ trg_event:
change_tablespace_access:
tablespace_name
ts_access_mode
- ;
+ ;
change_tablespace_info:
tablespace_name
CHANGE ts_datafile
change_ts_option_list
- ;
+ ;
tablespace_info:
tablespace_name
ADD ts_datafile
opt_logfile_group_name
tablespace_option_list
- ;
+ ;
opt_logfile_group_name:
/* empty */ {}
- | USE_SYM LOGFILE_SYM GROUP_SYM ident
+ | USE_SYM LOGFILE_SYM GROUP_SYM ident
{
LEX *lex= Lex;
lex->alter_tablespace_info->logfile_group_name= $4.str;
- };
+ }
+ ;
alter_tablespace_info:
tablespace_name
ADD ts_datafile
- alter_tablespace_option_list
- {
- Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE;
+ alter_tablespace_option_list
+ {
+ Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE;
}
- |
- tablespace_name
+ | tablespace_name
DROP ts_datafile
- alter_tablespace_option_list
- {
- Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE;
- };
+ alter_tablespace_option_list
+ {
+ Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE;
+ }
+ ;
logfile_group_info:
logfile_group_name
add_log_file
logfile_group_option_list
- ;
+ ;
alter_logfile_group_info:
logfile_group_name
add_log_file
alter_logfile_group_option_list
- ;
+ ;
add_log_file:
ADD lg_undofile
- | ADD lg_redofile
- ;
+ | ADD lg_redofile
+ ;
change_ts_option_list:
/* empty */ {}
change_ts_options
- ;
+ ;
change_ts_options:
change_ts_option
- | change_ts_options change_ts_option
- | change_ts_options ',' change_ts_option
- ;
+ | change_ts_options change_ts_option
+ | change_ts_options ',' change_ts_option
+ ;
change_ts_option:
opt_ts_initial_size
- | opt_ts_autoextend_size
- | opt_ts_max_size
- ;
+ | opt_ts_autoextend_size
+ | opt_ts_max_size
+ ;
tablespace_option_list:
/* empty */ {}
- tablespace_options
- ;
+ tablespace_options
+ ;
tablespace_options:
tablespace_option
- | tablespace_options tablespace_option
- | tablespace_options ',' tablespace_option
- ;
+ | tablespace_options tablespace_option
+ | tablespace_options ',' tablespace_option
+ ;
tablespace_option:
opt_ts_initial_size
- | opt_ts_autoextend_size
- | opt_ts_max_size
- | opt_ts_extent_size
- | opt_ts_nodegroup
- | opt_ts_engine
- | ts_wait
- | opt_ts_comment
- ;
+ | opt_ts_autoextend_size
+ | opt_ts_max_size
+ | opt_ts_extent_size
+ | opt_ts_nodegroup
+ | opt_ts_engine
+ | ts_wait
+ | opt_ts_comment
+ ;
alter_tablespace_option_list:
/* empty */ {}
- alter_tablespace_options
- ;
+ alter_tablespace_options
+ ;
alter_tablespace_options:
alter_tablespace_option
- | alter_tablespace_options alter_tablespace_option
- | alter_tablespace_options ',' alter_tablespace_option
- ;
+ | alter_tablespace_options alter_tablespace_option
+ | alter_tablespace_options ',' alter_tablespace_option
+ ;
alter_tablespace_option:
opt_ts_initial_size
- | opt_ts_autoextend_size
- | opt_ts_max_size
- | opt_ts_engine
- | ts_wait
- ;
+ | opt_ts_autoextend_size
+ | opt_ts_max_size
+ | opt_ts_engine
+ | ts_wait
+ ;
logfile_group_option_list:
/* empty */ {}
- logfile_group_options
- ;
+ logfile_group_options
+ ;
logfile_group_options:
logfile_group_option
- | logfile_group_options logfile_group_option
- | logfile_group_options ',' logfile_group_option
- ;
+ | logfile_group_options logfile_group_option
+ | logfile_group_options ',' logfile_group_option
+ ;
logfile_group_option:
opt_ts_initial_size
- | opt_ts_undo_buffer_size
- | opt_ts_redo_buffer_size
- | opt_ts_nodegroup
- | opt_ts_engine
- | ts_wait
- | opt_ts_comment
- ;
+ | opt_ts_undo_buffer_size
+ | opt_ts_redo_buffer_size
+ | opt_ts_nodegroup
+ | opt_ts_engine
+ | ts_wait
+ | opt_ts_comment
+ ;
alter_logfile_group_option_list:
/* empty */ {}
alter_logfile_group_options
- ;
+ ;
alter_logfile_group_options:
alter_logfile_group_option
- | alter_logfile_group_options alter_logfile_group_option
- | alter_logfile_group_options ',' alter_logfile_group_option
- ;
+ | alter_logfile_group_options alter_logfile_group_option
+ | alter_logfile_group_options ',' alter_logfile_group_option
+ ;
alter_logfile_group_option:
opt_ts_initial_size
- | opt_ts_engine
- | ts_wait
- ;
+ | opt_ts_engine
+ | ts_wait
+ ;
ts_datafile:
@@ -3398,21 +3443,24 @@ ts_datafile:
{
LEX *lex= Lex;
lex->alter_tablespace_info->data_file_name= $2.str;
- };
+ }
+ ;
lg_undofile:
UNDOFILE_SYM TEXT_STRING_sys
{
LEX *lex= Lex;
lex->alter_tablespace_info->undo_file_name= $2.str;
- };
+ }
+ ;
lg_redofile:
REDOFILE_SYM TEXT_STRING_sys
{
LEX *lex= Lex;
lex->alter_tablespace_info->redo_file_name= $2.str;
- };
+ }
+ ;
tablespace_name:
ident
@@ -3421,7 +3469,8 @@ tablespace_name:
lex->alter_tablespace_info= new st_alter_tablespace();
lex->alter_tablespace_info->tablespace_name= $1.str;
lex->sql_command= SQLCOM_ALTER_TABLESPACE;
- };
+ }
+ ;
logfile_group_name:
ident
@@ -3430,7 +3479,8 @@ logfile_group_name:
lex->alter_tablespace_info= new st_alter_tablespace();
lex->alter_tablespace_info->logfile_group_name= $1.str;
lex->sql_command= SQLCOM_ALTER_TABLESPACE;
- };
+ }
+ ;
ts_access_mode:
READ_ONLY_SYM
@@ -3438,58 +3488,65 @@ ts_access_mode:
LEX *lex= Lex;
lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
}
- | READ_WRITE_SYM
+ | READ_WRITE_SYM
{
LEX *lex= Lex;
lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
}
- | NOT_SYM ACCESSIBLE_SYM
+ | NOT_SYM ACCESSIBLE_SYM
{
LEX *lex= Lex;
lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
- };
+ }
+ ;
opt_ts_initial_size:
INITIAL_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->initial_size= $3;
- };
+ }
+ ;
opt_ts_autoextend_size:
AUTOEXTEND_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->autoextend_size= $3;
- };
+ }
+ ;
opt_ts_max_size:
MAX_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->max_size= $3;
- };
+ }
+ ;
opt_ts_extent_size:
EXTENT_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->extent_size= $3;
- };
+ }
+ ;
opt_ts_undo_buffer_size:
UNDO_BUFFER_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->undo_buffer_size= $3;
- };
+ }
+ ;
opt_ts_redo_buffer_size:
REDO_BUFFER_SIZE_SYM opt_equal size_number
{
LEX *lex= Lex;
lex->alter_tablespace_info->redo_buffer_size= $3;
- };
+ }
+ ;
opt_ts_nodegroup:
NODEGROUP_SYM opt_equal real_ulong_num
@@ -3501,7 +3558,8 @@ opt_ts_nodegroup:
MYSQL_YYABORT;
}
lex->alter_tablespace_info->nodegroup_id= $3;
- };
+ }
+ ;
opt_ts_comment:
COMMENT_SYM opt_equal TEXT_STRING_sys
@@ -3513,7 +3571,8 @@ opt_ts_comment:
MYSQL_YYABORT;
}
lex->alter_tablespace_info->ts_comment= $3.str;
- };
+ }
+ ;
opt_ts_engine:
opt_storage ENGINE_SYM opt_equal storage_engines
@@ -3526,12 +3585,13 @@ opt_ts_engine:
MYSQL_YYABORT;
}
lex->alter_tablespace_info->storage_engine= $4;
- };
+ }
+ ;
opt_ts_wait:
/* empty */
- | ts_wait
- ;
+ | ts_wait
+ ;
ts_wait:
WAIT_SYM
@@ -3539,7 +3599,7 @@ ts_wait:
LEX *lex= Lex;
lex->alter_tablespace_info->wait_until_completed= TRUE;
}
- | NO_WAIT_SYM
+ | NO_WAIT_SYM
{
LEX *lex= Lex;
if (!(lex->alter_tablespace_info->wait_until_completed))
@@ -3548,11 +3608,12 @@ ts_wait:
MYSQL_YYABORT;
}
lex->alter_tablespace_info->wait_until_completed= FALSE;
- };
+ }
+ ;
size_number:
real_ulong_num { $$= $1;}
- | IDENT
+ | IDENT
{
ulonglong number;
uint text_shift_number= 0;
@@ -3596,16 +3657,16 @@ size_number:
}
$$= number;
}
- ;
+ ;
/*
End tablespace part
*/
create2:
- '(' create2a {}
+ '(' create2a {}
| opt_create_table_options
- opt_partitioning {}
+ opt_partitioning {}
create3 {}
| LIKE table_ident
{
@@ -3628,7 +3689,7 @@ create2:
;
create2a:
- field_list ')' opt_create_table_options
+ field_list ')' opt_create_table_options
opt_partitioning {}
create3 {}
| opt_partitioning {}
@@ -3637,10 +3698,10 @@ create2a:
;
create3:
- /* empty */ {}
- | opt_duplicate opt_as create_select
+ /* empty */ {}
+ | opt_duplicate opt_as create_select
{ Select->set_braces(0);} union_clause {}
- | opt_duplicate opt_as '(' create_select ')'
+ | opt_duplicate opt_as '(' create_select ')'
{ Select->set_braces(1);} union_opt {}
;
@@ -3669,552 +3730,552 @@ create3:
from the openfrm function.
*/
opt_partitioning:
- /* empty */ {}
+ /* empty */ {}
| partitioning
;
partitioning:
- PARTITION_SYM
- {
-#ifdef WITH_PARTITION_STORAGE_ENGINE
- LEX *lex= Lex;
- LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
- if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
+ PARTITION_SYM
{
+#ifdef WITH_PARTITION_STORAGE_ENGINE
+ LEX *lex= Lex;
+ LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
+ if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
+ {
+ my_error(ER_FEATURE_DISABLED, MYF(0),
+ "partitioning", "--with-partition");
+ MYSQL_YYABORT;
+ }
+ lex->part_info= new partition_info();
+ if (!lex->part_info)
+ {
+ mem_alloc_error(sizeof(partition_info));
+ MYSQL_YYABORT;
+ }
+ if (lex->sql_command == SQLCOM_ALTER_TABLE)
+ {
+ lex->alter_info.flags|= ALTER_PARTITION;
+ }
+#else
my_error(ER_FEATURE_DISABLED, MYF(0),
"partitioning", "--with-partition");
MYSQL_YYABORT;
- }
- lex->part_info= new partition_info();
- if (!lex->part_info)
- {
- mem_alloc_error(sizeof(partition_info));
- MYSQL_YYABORT;
- }
- if (lex->sql_command == SQLCOM_ALTER_TABLE)
- {
- lex->alter_info.flags|= ALTER_PARTITION;
- }
-#else
- my_error(ER_FEATURE_DISABLED, MYF(0),
- "partitioning", "--with-partition");
- MYSQL_YYABORT;
#endif
- }
- partition
+ }
+ partition
;
partition_entry:
- PARTITION_SYM
- {
- LEX *lex= Lex;
- if (!lex->part_info)
+ PARTITION_SYM
{
- my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ if (!lex->part_info)
+ {
+ my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
+ MYSQL_YYABORT;
+ }
+ /*
+ We enter here when opening the frm file to translate
+ partition info string into part_info data structure.
+ */
}
- /*
- We enter here when opening the frm file to translate
- partition info string into part_info data structure.
- */
- }
- partition {}
+ partition {}
;
partition:
- BY part_type_def opt_no_parts {} opt_sub_part {} part_defs
+ BY part_type_def opt_no_parts {} opt_sub_part {} part_defs
;
part_type_def:
- opt_linear KEY_SYM '(' part_field_list ')'
- {
- LEX *lex= Lex;
- lex->part_info->list_of_part_fields= TRUE;
- lex->part_info->part_type= HASH_PARTITION;
- }
+ opt_linear KEY_SYM '(' part_field_list ')'
+ {
+ LEX *lex= Lex;
+ lex->part_info->list_of_part_fields= TRUE;
+ lex->part_info->part_type= HASH_PARTITION;
+ }
| opt_linear HASH_SYM
- { Lex->part_info->part_type= HASH_PARTITION; }
- part_func {}
+ { Lex->part_info->part_type= HASH_PARTITION; }
+ part_func {}
| RANGE_SYM
- { Lex->part_info->part_type= RANGE_PARTITION; }
- part_func {}
+ { Lex->part_info->part_type= RANGE_PARTITION; }
+ part_func {}
| LIST_SYM
- { Lex->part_info->part_type= LIST_PARTITION; }
- part_func {}
+ { Lex->part_info->part_type= LIST_PARTITION; }
+ part_func {}
;
opt_linear:
- /* empty */ {}
+ /* empty */ {}
| LINEAR_SYM
- { Lex->part_info->linear_hash_ind= TRUE;}
+ { Lex->part_info->linear_hash_ind= TRUE;}
;
part_field_list:
- /* empty */ {}
+ /* empty */ {}
| part_field_item_list {}
;
part_field_item_list:
- part_field_item {}
+ part_field_item {}
| part_field_item_list ',' part_field_item {}
;
part_field_item:
- ident
- {
- if (Lex->part_info->part_field_list.push_back($1.str))
+ ident
{
- mem_alloc_error(1);
- MYSQL_YYABORT;
+ if (Lex->part_info->part_field_list.push_back($1.str))
+ {
+ mem_alloc_error(1);
+ MYSQL_YYABORT;
+ }
}
- }
;
part_func:
- '(' remember_name part_func_expr remember_end ')'
- {
- LEX *lex= Lex;
- uint expr_len= (uint)($4 - $2) - 1;
- lex->part_info->list_of_part_fields= FALSE;
- lex->part_info->part_expr= $3;
- lex->part_info->part_func_string= (char* ) sql_memdup($2+1, expr_len);
- lex->part_info->part_func_len= expr_len;
- }
+ '(' remember_name part_func_expr remember_end ')'
+ {
+ LEX *lex= Lex;
+ uint expr_len= (uint)($4 - $2) - 1;
+ lex->part_info->list_of_part_fields= FALSE;
+ lex->part_info->part_expr= $3;
+ lex->part_info->part_func_string= (char* ) sql_memdup($2+1, expr_len);
+ lex->part_info->part_func_len= expr_len;
+ }
;
sub_part_func:
- '(' remember_name part_func_expr remember_end ')'
- {
- LEX *lex= Lex;
- uint expr_len= (uint)($4 - $2) - 1;
- lex->part_info->list_of_subpart_fields= FALSE;
- lex->part_info->subpart_expr= $3;
- lex->part_info->subpart_func_string= (char* ) sql_memdup($2+1, expr_len);
- lex->part_info->subpart_func_len= expr_len;
- }
+ '(' remember_name part_func_expr remember_end ')'
+ {
+ LEX *lex= Lex;
+ uint expr_len= (uint)($4 - $2) - 1;
+ lex->part_info->list_of_subpart_fields= FALSE;
+ lex->part_info->subpart_expr= $3;
+ lex->part_info->subpart_func_string= (char* ) sql_memdup($2+1, expr_len);
+ lex->part_info->subpart_func_len= expr_len;
+ }
;
opt_no_parts:
- /* empty */ {}
- | PARTITIONS_SYM real_ulong_num
- {
- uint no_parts= $2;
- LEX *lex= Lex;
- if (no_parts == 0)
- {
- my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
- MYSQL_YYABORT;
- }
+ /* empty */ {}
+ | PARTITIONS_SYM real_ulong_num
+ {
+ uint no_parts= $2;
+ LEX *lex= Lex;
+ if (no_parts == 0)
+ {
+ my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
+ MYSQL_YYABORT;
+ }
- lex->part_info->no_parts= no_parts;
- lex->part_info->use_default_no_partitions= FALSE;
- }
+ lex->part_info->no_parts= no_parts;
+ lex->part_info->use_default_no_partitions= FALSE;
+ }
;
opt_sub_part:
- /* empty */ {}
+ /* empty */ {}
| SUBPARTITION_SYM BY opt_linear HASH_SYM sub_part_func
- { Lex->part_info->subpart_type= HASH_PARTITION; }
- opt_no_subparts {}
+ { Lex->part_info->subpart_type= HASH_PARTITION; }
+ opt_no_subparts {}
| SUBPARTITION_SYM BY opt_linear KEY_SYM
'(' sub_part_field_list ')'
- {
- LEX *lex= Lex;
- lex->part_info->subpart_type= HASH_PARTITION;
- lex->part_info->list_of_subpart_fields= TRUE;
- }
- opt_no_subparts {}
+ {
+ LEX *lex= Lex;
+ lex->part_info->subpart_type= HASH_PARTITION;
+ lex->part_info->list_of_subpart_fields= TRUE;
+ }
+ opt_no_subparts {}
;
sub_part_field_list:
- sub_part_field_item {}
+ sub_part_field_item {}
| sub_part_field_list ',' sub_part_field_item {}
;
sub_part_field_item:
- ident
- {
- if (Lex->part_info->subpart_field_list.push_back($1.str))
+ ident
{
- mem_alloc_error(1);
- MYSQL_YYABORT;
+ if (Lex->part_info->subpart_field_list.push_back($1.str))
+ {
+ mem_alloc_error(1);
+ MYSQL_YYABORT;
+ }
}
- }
;
part_func_expr:
- bit_expr
- {
- LEX *lex= Lex;
- bool not_corr_func;
- not_corr_func= !lex->safe_to_cache_query;
- lex->safe_to_cache_query= 1;
- if (not_corr_func)
+ bit_expr
{
- my_parse_error(ER(ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ bool not_corr_func;
+ not_corr_func= !lex->safe_to_cache_query;
+ lex->safe_to_cache_query= 1;
+ if (not_corr_func)
+ {
+ my_parse_error(ER(ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR));
+ MYSQL_YYABORT;
+ }
+ $$=$1;
}
- $$=$1;
- }
;
opt_no_subparts:
- /* empty */ {}
+ /* empty */ {}
| SUBPARTITIONS_SYM real_ulong_num
- {
- uint no_parts= $2;
- LEX *lex= Lex;
- if (no_parts == 0)
{
- my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
- MYSQL_YYABORT;
+ uint no_parts= $2;
+ LEX *lex= Lex;
+ if (no_parts == 0)
+ {
+ my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
+ MYSQL_YYABORT;
+ }
+ lex->part_info->no_subparts= no_parts;
+ lex->part_info->use_default_no_subpartitions= FALSE;
}
- lex->part_info->no_subparts= no_parts;
- lex->part_info->use_default_no_subpartitions= FALSE;
- }
;
part_defs:
- /* empty */
- {}
+ /* empty */
+ {}
| '(' part_def_list ')'
- {
- LEX *lex= Lex;
- partition_info *part_info= lex->part_info;
- uint count_curr_parts= part_info->partitions.elements;
- if (part_info->no_parts != 0)
{
- if (part_info->no_parts !=
- count_curr_parts)
+ LEX *lex= Lex;
+ partition_info *part_info= lex->part_info;
+ uint count_curr_parts= part_info->partitions.elements;
+ if (part_info->no_parts != 0)
{
- my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
- MYSQL_YYABORT;
+ if (part_info->no_parts !=
+ count_curr_parts)
+ {
+ my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
+ MYSQL_YYABORT;
+ }
}
+ else if (count_curr_parts > 0)
+ {
+ part_info->no_parts= count_curr_parts;
+ }
+ part_info->count_curr_subparts= 0;
}
- else if (count_curr_parts > 0)
- {
- part_info->no_parts= count_curr_parts;
- }
- part_info->count_curr_subparts= 0;
- }
;
part_def_list:
- part_definition {}
+ part_definition {}
| part_def_list ',' part_definition {}
;
part_definition:
- PARTITION_SYM
- {
- LEX *lex= Lex;
- partition_info *part_info= lex->part_info;
- partition_element *p_elem= new partition_element();
-
- if (!p_elem || part_info->partitions.push_back(p_elem))
+ PARTITION_SYM
{
- mem_alloc_error(sizeof(partition_element));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ partition_info *part_info= lex->part_info;
+ partition_element *p_elem= new partition_element();
+
+ if (!p_elem || part_info->partitions.push_back(p_elem))
+ {
+ mem_alloc_error(sizeof(partition_element));
+ MYSQL_YYABORT;
+ }
+ p_elem->part_state= PART_NORMAL;
+ part_info->curr_part_elem= p_elem;
+ part_info->current_partition= p_elem;
+ part_info->use_default_partitions= FALSE;
+ part_info->use_default_no_partitions= FALSE;
}
- p_elem->part_state= PART_NORMAL;
- part_info->curr_part_elem= p_elem;
- part_info->current_partition= p_elem;
- part_info->use_default_partitions= FALSE;
- part_info->use_default_no_partitions= FALSE;
- }
- part_name {}
- opt_part_values {}
- opt_part_options {}
- opt_sub_partition {}
+ part_name {}
+ opt_part_values {}
+ opt_part_options {}
+ opt_sub_partition {}
;
part_name:
- ident
- {
- LEX *lex= Lex;
- partition_info *part_info= lex->part_info;
- partition_element *p_elem= part_info->curr_part_elem;
- p_elem->partition_name= $1.str;
- }
+ ident
+ {
+ LEX *lex= Lex;
+ partition_info *part_info= lex->part_info;
+ partition_element *p_elem= part_info->curr_part_elem;
+ p_elem->partition_name= $1.str;
+ }
;
opt_part_values:
- /* empty */
- {
- LEX *lex= Lex;
- if (! lex->is_partition_management())
+ /* empty */
{
- if (lex->part_info->part_type == RANGE_PARTITION)
- {
- my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
- "RANGE", "LESS THAN");
- MYSQL_YYABORT;
- }
- if (lex->part_info->part_type == LIST_PARTITION)
+ LEX *lex= Lex;
+ if (! lex->is_partition_management())
{
- my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
- "LIST", "IN");
- MYSQL_YYABORT;
+ if (lex->part_info->part_type == RANGE_PARTITION)
+ {
+ my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
+ "RANGE", "LESS THAN");
+ MYSQL_YYABORT;
+ }
+ if (lex->part_info->part_type == LIST_PARTITION)
+ {
+ my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
+ "LIST", "IN");
+ MYSQL_YYABORT;
+ }
}
+ else
+ lex->part_info->part_type= HASH_PARTITION;
}
- else
- lex->part_info->part_type= HASH_PARTITION;
- }
| VALUES LESS_SYM THAN_SYM part_func_max
- {
- LEX *lex= Lex;
- if (! lex->is_partition_management())
{
- if (Lex->part_info->part_type != RANGE_PARTITION)
+ LEX *lex= Lex;
+ if (! lex->is_partition_management())
{
- my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
- "RANGE", "LESS THAN");
- MYSQL_YYABORT;
+ if (Lex->part_info->part_type != RANGE_PARTITION)
+ {
+ my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
+ "RANGE", "LESS THAN");
+ MYSQL_YYABORT;
+ }
}
+ else
+ lex->part_info->part_type= RANGE_PARTITION;
}
- else
- lex->part_info->part_type= RANGE_PARTITION;
- }
| VALUES IN_SYM '(' part_list_func ')'
- {
- LEX *lex= Lex;
- if (! lex->is_partition_management())
{
- if (Lex->part_info->part_type != LIST_PARTITION)
+ LEX *lex= Lex;
+ if (! lex->is_partition_management())
{
- my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
- "LIST", "IN");
- MYSQL_YYABORT;
+ if (Lex->part_info->part_type != LIST_PARTITION)
+ {
+ my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
+ "LIST", "IN");
+ MYSQL_YYABORT;
+ }
}
+ else
+ lex->part_info->part_type= LIST_PARTITION;
}
- else
- lex->part_info->part_type= LIST_PARTITION;
- }
;
part_func_max:
- max_value_sym
- {
- LEX *lex= Lex;
- if (lex->part_info->defined_max_value)
+ max_value_sym
{
- my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ if (lex->part_info->defined_max_value)
+ {
+ my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
+ MYSQL_YYABORT;
+ }
+ lex->part_info->defined_max_value= TRUE;
+ lex->part_info->curr_part_elem->max_value= TRUE;
+ lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
}
- lex->part_info->defined_max_value= TRUE;
- lex->part_info->curr_part_elem->max_value= TRUE;
- lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
- }
| part_range_func
- {
- if (Lex->part_info->defined_max_value)
- {
- my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
- MYSQL_YYABORT;
- }
- if (Lex->part_info->curr_part_elem->has_null_value)
{
- my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
- MYSQL_YYABORT;
+ if (Lex->part_info->defined_max_value)
+ {
+ my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
+ MYSQL_YYABORT;
+ }
+ if (Lex->part_info->curr_part_elem->has_null_value)
+ {
+ my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
+ MYSQL_YYABORT;
+ }
}
- }
;
max_value_sym:
- MAX_VALUE_SYM
+ MAX_VALUE_SYM
| '(' MAX_VALUE_SYM ')'
;
part_range_func:
- '(' part_bit_expr ')'
- {
- partition_info *part_info= Lex->part_info;
- if (!($2->unsigned_flag))
- part_info->curr_part_elem->signed_flag= TRUE;
- part_info->curr_part_elem->range_value= $2->value;
- }
+ '(' part_bit_expr ')'
+ {
+ partition_info *part_info= Lex->part_info;
+ if (!($2->unsigned_flag))
+ part_info->curr_part_elem->signed_flag= TRUE;
+ part_info->curr_part_elem->range_value= $2->value;
+ }
;
part_list_func:
- part_list_item {}
+ part_list_item {}
| part_list_func ',' part_list_item {}
;
part_list_item:
- part_bit_expr
- {
- part_elem_value *value_ptr= $1;
- partition_info *part_info= Lex->part_info;
- if (!value_ptr->unsigned_flag)
- part_info->curr_part_elem->signed_flag= TRUE;
- if (!value_ptr->null_value &&
- part_info->curr_part_elem->
- list_val_list.push_back(value_ptr))
- {
- mem_alloc_error(sizeof(part_elem_value));
- MYSQL_YYABORT;
+ part_bit_expr
+ {
+ part_elem_value *value_ptr= $1;
+ partition_info *part_info= Lex->part_info;
+ if (!value_ptr->unsigned_flag)
+ part_info->curr_part_elem->signed_flag= TRUE;
+ if (!value_ptr->null_value &&
+ part_info->curr_part_elem->
+ list_val_list.push_back(value_ptr))
+ {
+ mem_alloc_error(sizeof(part_elem_value));
+ MYSQL_YYABORT;
+ }
}
- }
;
part_bit_expr:
- bit_expr
- {
- Item *part_expr= $1;
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Name_resolution_context *context= &lex->current_select->context;
- TABLE_LIST *save_list= context->table_list;
- const char *save_where= thd->where;
-
- context->table_list= 0;
- thd->where= "partition function";
-
- part_elem_value *value_ptr=
- (part_elem_value*)sql_alloc(sizeof(part_elem_value));
- if (!value_ptr)
- {
- mem_alloc_error(sizeof(part_elem_value));
- MYSQL_YYABORT;
- }
- if (part_expr->walk(&Item::check_partition_func_processor, 0,
- NULL))
+ bit_expr
{
- my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
- MYSQL_YYABORT;
- }
- if (part_expr->fix_fields(YYTHD, (Item**)0) ||
- ((context->table_list= save_list), FALSE) ||
- (!part_expr->const_item()) ||
- (!lex->safe_to_cache_query))
- {
- my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
- MYSQL_YYABORT;
- }
- thd->where= save_where;
- value_ptr->value= part_expr->val_int();
- value_ptr->unsigned_flag= TRUE;
- if (!part_expr->unsigned_flag &&
- value_ptr->value < 0)
- value_ptr->unsigned_flag= FALSE;
- if ((value_ptr->null_value= part_expr->null_value))
- {
- if (Lex->part_info->curr_part_elem->has_null_value)
+ Item *part_expr= $1;
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Name_resolution_context *context= &lex->current_select->context;
+ TABLE_LIST *save_list= context->table_list;
+ const char *save_where= thd->where;
+
+ context->table_list= 0;
+ thd->where= "partition function";
+
+ part_elem_value *value_ptr=
+ (part_elem_value*)sql_alloc(sizeof(part_elem_value));
+ if (!value_ptr)
{
- my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
+ mem_alloc_error(sizeof(part_elem_value));
MYSQL_YYABORT;
}
- Lex->part_info->curr_part_elem->has_null_value= TRUE;
- }
- else if (part_expr->result_type() != INT_RESULT)
- {
- my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
- MYSQL_YYABORT;
+ if (part_expr->walk(&Item::check_partition_func_processor, 0,
+ NULL))
+ {
+ my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
+ MYSQL_YYABORT;
+ }
+ if (part_expr->fix_fields(YYTHD, (Item**)0) ||
+ ((context->table_list= save_list), FALSE) ||
+ (!part_expr->const_item()) ||
+ (!lex->safe_to_cache_query))
+ {
+ my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
+ MYSQL_YYABORT;
+ }
+ thd->where= save_where;
+ value_ptr->value= part_expr->val_int();
+ value_ptr->unsigned_flag= TRUE;
+ if (!part_expr->unsigned_flag &&
+ value_ptr->value < 0)
+ value_ptr->unsigned_flag= FALSE;
+ if ((value_ptr->null_value= part_expr->null_value))
+ {
+ if (Lex->part_info->curr_part_elem->has_null_value)
+ {
+ my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
+ MYSQL_YYABORT;
+ }
+ Lex->part_info->curr_part_elem->has_null_value= TRUE;
+ }
+ else if (part_expr->result_type() != INT_RESULT)
+ {
+ my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
+ MYSQL_YYABORT;
+ }
+ $$= value_ptr;
}
- $$= value_ptr;
- }
;
opt_sub_partition:
- /* empty */
- {
- if (Lex->part_info->no_subparts != 0 &&
- !Lex->part_info->use_default_subpartitions)
- {
- my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
- MYSQL_YYABORT;
- }
- }
- | '(' sub_part_list ')'
- {
- LEX *lex= Lex;
- partition_info *part_info= lex->part_info;
- if (part_info->no_subparts != 0)
+ /* empty */
{
- if (part_info->no_subparts !=
- part_info->count_curr_subparts)
+ if (Lex->part_info->no_subparts != 0 &&
+ !Lex->part_info->use_default_subpartitions)
{
my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
MYSQL_YYABORT;
}
}
- else if (part_info->count_curr_subparts > 0)
+ | '(' sub_part_list ')'
{
- if (part_info->partitions.elements > 1)
+ LEX *lex= Lex;
+ partition_info *part_info= lex->part_info;
+ if (part_info->no_subparts != 0)
{
- my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
- MYSQL_YYABORT;
+ if (part_info->no_subparts !=
+ part_info->count_curr_subparts)
+ {
+ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
+ MYSQL_YYABORT;
+ }
}
- part_info->no_subparts= part_info->count_curr_subparts;
+ else if (part_info->count_curr_subparts > 0)
+ {
+ if (part_info->partitions.elements > 1)
+ {
+ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
+ MYSQL_YYABORT;
+ }
+ part_info->no_subparts= part_info->count_curr_subparts;
+ }
+ part_info->count_curr_subparts= 0;
}
- part_info->count_curr_subparts= 0;
- }
;
sub_part_list:
- sub_part_definition {}
+ sub_part_definition {}
| sub_part_list ',' sub_part_definition {}
;
sub_part_definition:
- SUBPARTITION_SYM
- {
- LEX *lex= Lex;
- partition_info *part_info= lex->part_info;
- partition_element *curr_part= part_info->current_partition;
- partition_element *sub_p_elem= new partition_element(curr_part);
- if (!sub_p_elem ||
- curr_part->subpartitions.push_back(sub_p_elem))
+ SUBPARTITION_SYM
{
- mem_alloc_error(sizeof(partition_element));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ partition_info *part_info= lex->part_info;
+ partition_element *curr_part= part_info->current_partition;
+ partition_element *sub_p_elem= new partition_element(curr_part);
+ if (!sub_p_elem ||
+ curr_part->subpartitions.push_back(sub_p_elem))
+ {
+ mem_alloc_error(sizeof(partition_element));
+ MYSQL_YYABORT;
+ }
+ part_info->curr_part_elem= sub_p_elem;
+ part_info->use_default_subpartitions= FALSE;
+ part_info->use_default_no_subpartitions= FALSE;
+ part_info->count_curr_subparts++;
}
- part_info->curr_part_elem= sub_p_elem;
- part_info->use_default_subpartitions= FALSE;
- part_info->use_default_no_subpartitions= FALSE;
- part_info->count_curr_subparts++;
- }
- sub_name opt_part_options {}
+ sub_name opt_part_options {}
;
sub_name:
- ident_or_text
- { Lex->part_info->curr_part_elem->partition_name= $1.str; }
+ ident_or_text
+ { Lex->part_info->curr_part_elem->partition_name= $1.str; }
;
opt_part_options:
- /* empty */ {}
+ /* empty */ {}
| opt_part_option_list {}
;
opt_part_option_list:
- opt_part_option_list opt_part_option {}
+ opt_part_option_list opt_part_option {}
| opt_part_option {}
;
opt_part_option:
- TABLESPACE opt_equal ident_or_text
- { Lex->part_info->curr_part_elem->tablespace_name= $3.str; }
+ TABLESPACE opt_equal ident_or_text
+ { Lex->part_info->curr_part_elem->tablespace_name= $3.str; }
| opt_storage ENGINE_SYM opt_equal storage_engines
- {
- LEX *lex= Lex;
- lex->part_info->curr_part_elem->engine_type= $4;
- lex->part_info->default_engine_type= $4;
- }
+ {
+ LEX *lex= Lex;
+ lex->part_info->curr_part_elem->engine_type= $4;
+ lex->part_info->default_engine_type= $4;
+ }
| NODEGROUP_SYM opt_equal real_ulong_num
- { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) $3; }
+ { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) $3; }
| MAX_ROWS opt_equal real_ulonglong_num
- { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) $3; }
+ { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) $3; }
| MIN_ROWS opt_equal real_ulonglong_num
- { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) $3; }
+ { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) $3; }
| DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys
- { Lex->part_info->curr_part_elem->data_file_name= $4.str; }
+ { Lex->part_info->curr_part_elem->data_file_name= $4.str; }
| INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys
- { Lex->part_info->curr_part_elem->index_file_name= $4.str; }
+ { Lex->part_info->curr_part_elem->index_file_name= $4.str; }
| COMMENT_SYM opt_equal TEXT_STRING_sys
- { Lex->part_info->curr_part_elem->part_comment= $3.str; }
+ { Lex->part_info->curr_part_elem->part_comment= $3.str; }
;
/*
@@ -4224,93 +4285,132 @@ opt_part_option:
create_select:
SELECT_SYM
{
- LEX *lex=Lex;
- lex->lock_option= using_update_log ? TL_READ_NO_INSERT : TL_READ;
- if (lex->sql_command == SQLCOM_INSERT)
- lex->sql_command= SQLCOM_INSERT_SELECT;
- else if (lex->sql_command == SQLCOM_REPLACE)
- lex->sql_command= SQLCOM_REPLACE_SELECT;
- /*
+ LEX *lex=Lex;
+ lex->lock_option= using_update_log ? TL_READ_NO_INSERT : TL_READ;
+ if (lex->sql_command == SQLCOM_INSERT)
+ lex->sql_command= SQLCOM_INSERT_SELECT;
+ else if (lex->sql_command == SQLCOM_REPLACE)
+ lex->sql_command= SQLCOM_REPLACE_SELECT;
+ /*
The following work only with the local list, the global list
is created correctly in this case
- */
- lex->current_select->table_list.save_and_clear(&lex->save_list);
- mysql_init_select(lex);
- lex->current_select->parsing_place= SELECT_LIST;
+ */
+ lex->current_select->table_list.save_and_clear(&lex->save_list);
+ mysql_init_select(lex);
+ lex->current_select->parsing_place= SELECT_LIST;
}
select_options select_item_list
- {
- Select->parsing_place= NO_MATTER;
- }
- opt_select_from
- {
- /*
+ {
+ Select->parsing_place= NO_MATTER;
+ }
+ opt_select_from
+ {
+ /*
The following work only with the local list, the global list
is created correctly in this case
- */
- Lex->current_select->table_list.push_front(&Lex->save_list);
- }
+ */
+ Lex->current_select->table_list.push_front(&Lex->save_list);
+ }
;
opt_as:
- /* empty */ {}
- | AS {};
+ /* empty */ {}
+ | AS {}
+ ;
opt_create_database_options:
- /* empty */ {}
- | create_database_options {};
+ /* empty */ {}
+ | create_database_options {}
+ ;
create_database_options:
- create_database_option {}
- | create_database_options create_database_option {};
+ create_database_option {}
+ | create_database_options create_database_option {}
+ ;
create_database_option:
- default_collation {}
- | default_charset {};
+ default_collation {}
+ | default_charset {}
+ ;
opt_table_options:
- /* empty */ { $$= 0; }
- | table_options { $$= $1;};
+ /* empty */ { $$= 0; }
+ | table_options { $$= $1;}
+ ;
table_options:
- table_option { $$=$1; }
- | table_option table_options { $$= $1 | $2; };
+ table_option { $$=$1; }
+ | table_option table_options { $$= $1 | $2; }
+ ;
table_option:
- TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; };
+ TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; }
+ ;
opt_if_not_exists:
- /* empty */ { $$= 0; }
- | IF not EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; };
+ /* empty */ { $$= 0; }
+ | IF not EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; }
+ ;
opt_create_table_options:
- /* empty */
- | create_table_options;
+ /* empty */
+ | create_table_options
+ ;
create_table_options_space_separated:
- create_table_option
- | create_table_option create_table_options_space_separated;
+ create_table_option
+ | create_table_option create_table_options_space_separated
+ ;
create_table_options:
- create_table_option
- | create_table_option create_table_options
- | create_table_option ',' create_table_options;
+ create_table_option
+ | create_table_option create_table_options
+ | create_table_option ',' create_table_options
+ ;
create_table_option:
- ENGINE_SYM opt_equal storage_engines { Lex->create_info.db_type= $3; Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; }
- | TYPE_SYM opt_equal storage_engines
+ ENGINE_SYM opt_equal storage_engines
+ {
+ Lex->create_info.db_type= $3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
+ }
+ | TYPE_SYM opt_equal storage_engines
{
Lex->create_info.db_type= $3;
WARN_DEPRECATED(yythd, "5.2", "TYPE=storage_engine",
"'ENGINE=storage_engine'");
Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
}
- | MAX_ROWS opt_equal ulonglong_num { Lex->create_info.max_rows= $3; Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;}
- | MIN_ROWS opt_equal ulonglong_num { Lex->create_info.min_rows= $3; Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;}
- | AVG_ROW_LENGTH opt_equal ulong_num { Lex->create_info.avg_row_length=$3; Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;}
- | PASSWORD opt_equal TEXT_STRING_sys { Lex->create_info.password=$3.str; Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; }
- | COMMENT_SYM opt_equal TEXT_STRING_sys { Lex->create_info.comment=$3; Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; }
- | AUTO_INC opt_equal ulonglong_num { Lex->create_info.auto_increment_value=$3; Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;}
+ | MAX_ROWS opt_equal ulonglong_num
+ {
+ Lex->create_info.max_rows= $3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
+ }
+ | MIN_ROWS opt_equal ulonglong_num
+ {
+ Lex->create_info.min_rows= $3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
+ }
+ | AVG_ROW_LENGTH opt_equal ulong_num
+ {
+ Lex->create_info.avg_row_length=$3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
+ }
+ | PASSWORD opt_equal TEXT_STRING_sys
+ {
+ Lex->create_info.password=$3.str;
+ Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
+ }
+ | COMMENT_SYM opt_equal TEXT_STRING_sys
+ {
+ Lex->create_info.comment=$3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
+ }
+ | AUTO_INC opt_equal ulonglong_num
+ {
+ Lex->create_info.auto_increment_value=$3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
+ }
| PACK_KEYS_SYM opt_equal ulong_num
{
switch($3) {
@@ -4332,108 +4432,142 @@ create_table_option:
~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
}
- | CHECKSUM_SYM opt_equal ulong_num { Lex->create_info.table_options|= $3 ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; }
- | DELAY_KEY_WRITE_SYM opt_equal ulong_num { Lex->create_info.table_options|= $3 ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE; }
- | ROW_FORMAT_SYM opt_equal row_types { Lex->create_info.row_type= $3; Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; }
- | UNION_SYM opt_equal '(' table_list ')'
- {
- /* Move the union list to the merge_list */
- LEX *lex=Lex;
- TABLE_LIST *table_list= lex->select_lex.get_table_list();
- lex->create_info.merge_list= lex->select_lex.table_list;
- lex->create_info.merge_list.elements--;
- lex->create_info.merge_list.first=
- (uchar*) (table_list->next_local);
- lex->select_lex.table_list.elements=1;
- lex->select_lex.table_list.next=
- (uchar**) &(table_list->next_local);
- table_list->next_local= 0;
- lex->create_info.used_fields|= HA_CREATE_USED_UNION;
- }
- | default_charset
- | default_collation
- | INSERT_METHOD opt_equal merge_insert_types { Lex->create_info.merge_insert_method= $3; Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;}
- | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.data_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; }
- | INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys { Lex->create_info.index_file_name= $4.str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; }
- | TABLESPACE ident {Lex->create_info.tablespace= $2.str;}
- | STORAGE_SYM DISK_SYM {Lex->create_info.storage_media= HA_SM_DISK;}
- | STORAGE_SYM MEMORY_SYM {Lex->create_info.storage_media= HA_SM_MEMORY;}
- | CONNECTION_SYM opt_equal TEXT_STRING_sys { Lex->create_info.connect_string.str= $3.str; Lex->create_info.connect_string.length= $3.length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; }
- | KEY_BLOCK_SIZE opt_equal ulong_num
- {
- Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
- Lex->create_info.key_block_size= $3;
- }
+ | CHECKSUM_SYM opt_equal ulong_num
+ {
+ Lex->create_info.table_options|= $3 ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
+ Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
+ }
+ | DELAY_KEY_WRITE_SYM opt_equal ulong_num
+ {
+ Lex->create_info.table_options|= $3 ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
+ Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
+ }
+ | ROW_FORMAT_SYM opt_equal row_types
+ {
+ Lex->create_info.row_type= $3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
+ }
+ | UNION_SYM opt_equal '(' table_list ')'
+ {
+ /* Move the union list to the merge_list */
+ LEX *lex=Lex;
+ TABLE_LIST *table_list= lex->select_lex.get_table_list();
+ lex->create_info.merge_list= lex->select_lex.table_list;
+ lex->create_info.merge_list.elements--;
+ lex->create_info.merge_list.first=
+ (uchar*) (table_list->next_local);
+ lex->select_lex.table_list.elements=1;
+ lex->select_lex.table_list.next=
+ (uchar**) &(table_list->next_local);
+ table_list->next_local= 0;
+ lex->create_info.used_fields|= HA_CREATE_USED_UNION;
+ }
+ | default_charset
+ | default_collation
+ | INSERT_METHOD opt_equal merge_insert_types
+ {
+ Lex->create_info.merge_insert_method= $3;
+ Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
+ }
+ | DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys
+ {
+ Lex->create_info.data_file_name= $4.str;
+ Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
+ }
+ | INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys
+ {
+ Lex->create_info.index_file_name= $4.str;
+ Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
+ }
+ | TABLESPACE ident
+ {Lex->create_info.tablespace= $2.str;}
+ | STORAGE_SYM DISK_SYM
+ {Lex->create_info.storage_media= HA_SM_DISK;}
+ | STORAGE_SYM MEMORY_SYM
+ {Lex->create_info.storage_media= HA_SM_MEMORY;}
+ | CONNECTION_SYM opt_equal TEXT_STRING_sys
+ {
+ Lex->create_info.connect_string.str= $3.str;
+ Lex->create_info.connect_string.length= $3.length;
+ Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION;
+ }
+ | KEY_BLOCK_SIZE opt_equal ulong_num
+ {
+ Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
+ Lex->create_info.key_block_size= $3;
+ }
;
default_charset:
- opt_default charset opt_equal charset_name_or_default
- {
- HA_CREATE_INFO *cinfo= &Lex->create_info;
- if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
- cinfo->default_table_charset && $4 &&
- !my_charset_same(cinfo->default_table_charset,$4))
- {
- my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
- "CHARACTER SET ", cinfo->default_table_charset->csname,
- "CHARACTER SET ", $4->csname);
- MYSQL_YYABORT;
- }
- Lex->create_info.default_table_charset= $4;
- Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
- };
-
-default_collation:
- opt_default COLLATE_SYM opt_equal collation_name_or_default
- {
- HA_CREATE_INFO *cinfo= &Lex->create_info;
- if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
- cinfo->default_table_charset && $4 &&
- !my_charset_same(cinfo->default_table_charset,$4))
+ opt_default charset opt_equal charset_name_or_default
+ {
+ HA_CREATE_INFO *cinfo= &Lex->create_info;
+ if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
+ cinfo->default_table_charset && $4 &&
+ !my_charset_same(cinfo->default_table_charset,$4))
{
- my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
- $4->name, cinfo->default_table_charset->csname);
+ my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
+ "CHARACTER SET ", cinfo->default_table_charset->csname,
+ "CHARACTER SET ", $4->csname);
MYSQL_YYABORT;
}
Lex->create_info.default_table_charset= $4;
Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
- };
+ }
+ ;
-storage_engines:
- ident_or_text
- {
- plugin_ref plugin= ha_resolve_by_name(YYTHD, &$1);
+default_collation:
+ opt_default COLLATE_SYM opt_equal collation_name_or_default
+ {
+ HA_CREATE_INFO *cinfo= &Lex->create_info;
+ if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
+ cinfo->default_table_charset && $4 &&
+ !my_charset_same(cinfo->default_table_charset,$4))
+ {
+ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
+ $4->name, cinfo->default_table_charset->csname);
+ MYSQL_YYABORT;
+ }
+ Lex->create_info.default_table_charset= $4;
+ Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
+ }
+ ;
- if (plugin)
- $$= plugin_data(plugin, handlerton*);
- else
+storage_engines:
+ ident_or_text
{
- if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
+ plugin_ref plugin= ha_resolve_by_name(YYTHD, &$1);
+
+ if (plugin)
+ $$= plugin_data(plugin, handlerton*);
+ else
{
- my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str);
- MYSQL_YYABORT;
+ if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
+ {
+ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ $$= 0;
+ push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
+ ER_UNKNOWN_STORAGE_ENGINE,
+ ER(ER_UNKNOWN_STORAGE_ENGINE),
+ $1.str);
}
- $$= 0;
- push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
- ER_UNKNOWN_STORAGE_ENGINE,
- ER(ER_UNKNOWN_STORAGE_ENGINE),
- $1.str);
}
- }
;
known_storage_engines:
- ident_or_text
- {
- plugin_ref plugin;
- if ((plugin= ha_resolve_by_name(YYTHD, &$1)))
- $$= plugin_data(plugin, handlerton*);
- else
- {
- my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- }
+ ident_or_text
+ {
+ plugin_ref plugin;
+ if ((plugin= ha_resolve_by_name(YYTHD, &$1)))
+ $$= plugin_data(plugin, handlerton*);
+ else
+ {
+ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ }
;
row_types:
@@ -4445,69 +4579,72 @@ row_types:
| COMPACT_SYM { $$= ROW_TYPE_COMPACT; };
merge_insert_types:
- NO_SYM { $$= MERGE_INSERT_DISABLED; }
+ NO_SYM { $$= MERGE_INSERT_DISABLED; }
| FIRST_SYM { $$= MERGE_INSERT_TO_FIRST; }
- | LAST_SYM { $$= MERGE_INSERT_TO_LAST; };
+ | LAST_SYM { $$= MERGE_INSERT_TO_LAST; }
+ ;
opt_select_from:
- opt_limit_clause {}
- | select_from select_lock_type;
+ opt_limit_clause {}
+ | select_from select_lock_type
+ ;
udf_func_type:
- /* empty */ { $$ = UDFTYPE_FUNCTION; }
- | AGGREGATE_SYM { $$ = UDFTYPE_AGGREGATE; };
+ /* empty */ { $$ = UDFTYPE_FUNCTION; }
+ | AGGREGATE_SYM { $$ = UDFTYPE_AGGREGATE; };
udf_type:
- STRING_SYM {$$ = (int) STRING_RESULT; }
- | REAL {$$ = (int) REAL_RESULT; }
+ STRING_SYM {$$ = (int) STRING_RESULT; }
+ | REAL {$$ = (int) REAL_RESULT; }
| DECIMAL_SYM {$$ = (int) DECIMAL_RESULT; }
- | INT_SYM {$$ = (int) INT_RESULT; };
+ | INT_SYM {$$ = (int) INT_RESULT; }
+ ;
field_list:
- field_list_item
- | field_list ',' field_list_item;
-
+ field_list_item
+ | field_list ',' field_list_item
+ ;
field_list_item:
- column_def
- | key_def
- ;
+ column_def
+ | key_def
+ ;
column_def:
- field_spec opt_check_constraint
- | field_spec references
- {
- Lex->col_list.empty(); /* Alloced by sql_alloc */
- }
- ;
+ field_spec opt_check_constraint
+ | field_spec references
+ {
+ Lex->col_list.empty(); /* Alloced by sql_alloc */
+ }
+ ;
key_def:
- key_type opt_ident key_alg '(' key_list ')' key_options
- {
- LEX *lex=Lex;
- if ($1 != Key::FULLTEXT && lex->key_create_info.parser_name.str)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
+ key_type opt_ident key_alg '(' key_list ')' key_options
+ {
+ LEX *lex=Lex;
+ if ($1 != Key::FULLTEXT && lex->key_create_info.parser_name.str)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
Key *key= new Key($1, $2, &lex->key_create_info, 0,
lex->col_list);
- lex->alter_info.key_list.push_back(key);
- lex->col_list.empty(); /* Alloced by sql_alloc */
- }
- | opt_constraint constraint_key_type opt_ident key_alg
- '(' key_list ')' key_options
- {
- LEX *lex=Lex;
- const char *key_name= $3 ? $3 : $1;
+ lex->alter_info.key_list.push_back(key);
+ lex->col_list.empty(); /* Alloced by sql_alloc */
+ }
+ | opt_constraint constraint_key_type opt_ident key_alg
+ '(' key_list ')' key_options
+ {
+ LEX *lex=Lex;
+ const char *key_name= $3 ? $3 : $1;
Key *key= new Key($2, key_name, &lex->key_create_info, 0,
lex->col_list);
- lex->alter_info.key_list.push_back(key);
- lex->col_list.empty(); /* Alloced by sql_alloc */
- }
- | opt_constraint FOREIGN KEY_SYM opt_ident '(' key_list ')' references
- {
- LEX *lex=Lex;
+ lex->alter_info.key_list.push_back(key);
+ lex->col_list.empty(); /* Alloced by sql_alloc */
+ }
+ | opt_constraint FOREIGN KEY_SYM opt_ident '(' key_list ')' references
+ {
+ LEX *lex=Lex;
const char *key_name= $4 ? $4 : $1;
Key *key= new Foreign_key(key_name, lex->col_list,
$8,
@@ -4520,117 +4657,168 @@ key_def:
&default_key_create_info, 1,
lex->col_list);
lex->alter_info.key_list.push_back(key);
- lex->col_list.empty(); /* Alloced by sql_alloc */
+ lex->col_list.empty(); /* Alloced by sql_alloc */
/* Only used for ALTER TABLE. Ignored otherwise. */
lex->alter_info.flags|= ALTER_FOREIGN_KEY;
- }
- | constraint opt_check_constraint
- {
- Lex->col_list.empty(); /* Alloced by sql_alloc */
- }
- | opt_constraint check_constraint
- {
- Lex->col_list.empty(); /* Alloced by sql_alloc */
- }
- ;
+ }
+ | constraint opt_check_constraint
+ {
+ Lex->col_list.empty(); /* Alloced by sql_alloc */
+ }
+ | opt_constraint check_constraint
+ {
+ Lex->col_list.empty(); /* Alloced by sql_alloc */
+ }
+ ;
opt_check_constraint:
- /* empty */
- | check_constraint
- ;
+ /* empty */
+ | check_constraint
+ ;
check_constraint:
- CHECK_SYM expr
- ;
+ CHECK_SYM expr
+ ;
opt_constraint:
- /* empty */ { $$=(char*) 0; }
- | constraint { $$= $1; }
- ;
+ /* empty */ { $$=(char*) 0; }
+ | constraint { $$= $1; }
+ ;
constraint:
- CONSTRAINT opt_ident { $$=$2; }
- ;
+ CONSTRAINT opt_ident { $$=$2; }
+ ;
field_spec:
- field_ident
- {
- LEX *lex=Lex;
- lex->length=lex->dec=0; lex->type=0;
- lex->default_value= lex->on_update_value= 0;
- lex->comment=null_lex_str;
- lex->charset=NULL;
- }
- type opt_attribute
- {
- LEX *lex=Lex;
- if (add_field_to_list(lex->thd, &$1, (enum enum_field_types) $3,
- lex->length,lex->dec,lex->type,
- lex->default_value, lex->on_update_value,
- &lex->comment,
- lex->change,&lex->interval_list,lex->charset,
- lex->uint_geom_type))
- MYSQL_YYABORT;
- };
+ field_ident
+ {
+ LEX *lex=Lex;
+ lex->length=lex->dec=0;
+ lex->type=0;
+ lex->default_value= lex->on_update_value= 0;
+ lex->comment=null_lex_str;
+ lex->charset=NULL;
+ }
+ type opt_attribute
+ {
+ LEX *lex=Lex;
+ if (add_field_to_list(lex->thd, &$1, (enum enum_field_types) $3,
+ lex->length,lex->dec,lex->type,
+ lex->default_value, lex->on_update_value,
+ &lex->comment,
+ lex->change,&lex->interval_list,lex->charset,
+ lex->uint_geom_type))
+ MYSQL_YYABORT;
+ }
+ ;
type:
- int_type opt_len field_options { $$=$1; }
- | real_type opt_precision field_options { $$=$1; }
- | FLOAT_SYM float_options field_options { $$=MYSQL_TYPE_FLOAT; }
- | BIT_SYM { Lex->length= (char*) "1";
- $$=MYSQL_TYPE_BIT; }
- | BIT_SYM '(' NUM ')' { Lex->length= $3.str;
- $$=MYSQL_TYPE_BIT; }
- | BOOL_SYM { Lex->length=(char*) "1";
- $$=MYSQL_TYPE_TINY; }
- | BOOLEAN_SYM { Lex->length=(char*) "1";
- $$=MYSQL_TYPE_TINY; }
- | char '(' NUM ')' opt_binary { Lex->length=$3.str;
- $$=MYSQL_TYPE_STRING; }
- | char opt_binary { Lex->length=(char*) "1";
- $$=MYSQL_TYPE_STRING; }
- | nchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str;
- $$=MYSQL_TYPE_STRING;
- Lex->charset=national_charset_info; }
- | nchar opt_bin_mod { Lex->length=(char*) "1";
- $$=MYSQL_TYPE_STRING;
- Lex->charset=national_charset_info; }
- | BINARY '(' NUM ')' { Lex->length=$3.str;
- Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_STRING; }
- | BINARY { Lex->length= (char*) "1";
- Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_STRING; }
- | varchar '(' NUM ')' opt_binary { Lex->length=$3.str;
- $$= MYSQL_TYPE_VARCHAR; }
- | nvarchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str;
- $$= MYSQL_TYPE_VARCHAR;
- Lex->charset=national_charset_info; }
- | VARBINARY '(' NUM ')' { Lex->length=$3.str;
- Lex->charset=&my_charset_bin;
- $$= MYSQL_TYPE_VARCHAR; }
- | YEAR_SYM opt_len field_options { $$=MYSQL_TYPE_YEAR; }
- | DATE_SYM { $$=MYSQL_TYPE_DATE; }
- | TIME_SYM { $$=MYSQL_TYPE_TIME; }
- | TIMESTAMP opt_len
- {
- if (YYTHD->variables.sql_mode & MODE_MAXDB)
- $$=MYSQL_TYPE_DATETIME;
- else
+ int_type opt_len field_options { $$=$1; }
+ | real_type opt_precision field_options { $$=$1; }
+ | FLOAT_SYM float_options field_options { $$=MYSQL_TYPE_FLOAT; }
+ | BIT_SYM
+ {
+ Lex->length= (char*) "1";
+ $$=MYSQL_TYPE_BIT;
+ }
+ | BIT_SYM '(' NUM ')'
+ {
+ Lex->length= $3.str;
+ $$=MYSQL_TYPE_BIT;
+ }
+ | BOOL_SYM
+ {
+ Lex->length=(char*) "1";
+ $$=MYSQL_TYPE_TINY;
+ }
+ | BOOLEAN_SYM
+ {
+ Lex->length=(char*) "1";
+ $$=MYSQL_TYPE_TINY;
+ }
+ | char '(' NUM ')' opt_binary
+ {
+ Lex->length=$3.str;
+ $$=MYSQL_TYPE_STRING;
+ }
+ | char opt_binary
+ {
+ Lex->length=(char*) "1";
+ $$=MYSQL_TYPE_STRING;
+ }
+ | nchar '(' NUM ')' opt_bin_mod
+ {
+ Lex->length=$3.str;
+ $$=MYSQL_TYPE_STRING;
+ Lex->charset=national_charset_info;
+ }
+ | nchar opt_bin_mod
+ {
+ Lex->length=(char*) "1";
+ $$=MYSQL_TYPE_STRING;
+ Lex->charset=national_charset_info;
+ }
+ | BINARY '(' NUM ')'
+ {
+ Lex->length=$3.str;
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_STRING;
+ }
+ | BINARY
+ {
+ Lex->length= (char*) "1";
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_STRING;
+ }
+ | varchar '(' NUM ')' opt_binary
+ {
+ Lex->length=$3.str;
+ $$= MYSQL_TYPE_VARCHAR;
+ }
+ | nvarchar '(' NUM ')' opt_bin_mod
+ {
+ Lex->length=$3.str;
+ $$= MYSQL_TYPE_VARCHAR;
+ Lex->charset=national_charset_info;
+ }
+ | VARBINARY '(' NUM ')'
+ {
+ Lex->length=$3.str;
+ Lex->charset=&my_charset_bin;
+ $$= MYSQL_TYPE_VARCHAR;
+ }
+ | YEAR_SYM opt_len field_options
+ { $$=MYSQL_TYPE_YEAR; }
+ | DATE_SYM
+ { $$=MYSQL_TYPE_DATE; }
+ | TIME_SYM
+ { $$=MYSQL_TYPE_TIME; }
+ | TIMESTAMP opt_len
+ {
+ if (YYTHD->variables.sql_mode & MODE_MAXDB)
+ $$=MYSQL_TYPE_DATETIME;
+ else
{
/*
Unlike other types TIMESTAMP fields are NOT NULL by default.
*/
Lex->type|= NOT_NULL_FLAG;
- $$=MYSQL_TYPE_TIMESTAMP;
+ $$=MYSQL_TYPE_TIMESTAMP;
}
- }
- | DATETIME { $$=MYSQL_TYPE_DATETIME; }
- | TINYBLOB { Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_TINY_BLOB; }
- | BLOB_SYM opt_len { Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_BLOB; }
- | spatial_type
+ }
+ | DATETIME
+ { $$=MYSQL_TYPE_DATETIME; }
+ | TINYBLOB
+ {
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_TINY_BLOB;
+ }
+ | BLOB_SYM opt_len
+ {
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_BLOB;
+ }
+ | spatial_type
{
#ifdef HAVE_SPATIAL
Lex->charset=&my_charset_bin;
@@ -4642,379 +4830,439 @@ type:
MYSQL_YYABORT;
#endif
}
- | MEDIUMBLOB { Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_MEDIUM_BLOB; }
- | LONGBLOB { Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_LONG_BLOB; }
- | LONG_SYM VARBINARY { Lex->charset=&my_charset_bin;
- $$=MYSQL_TYPE_MEDIUM_BLOB; }
- | LONG_SYM varchar opt_binary { $$=MYSQL_TYPE_MEDIUM_BLOB; }
- | TINYTEXT opt_binary { $$=MYSQL_TYPE_TINY_BLOB; }
- | TEXT_SYM opt_len opt_binary { $$=MYSQL_TYPE_BLOB; }
- | MEDIUMTEXT opt_binary { $$=MYSQL_TYPE_MEDIUM_BLOB; }
- | LONGTEXT opt_binary { $$=MYSQL_TYPE_LONG_BLOB; }
- | DECIMAL_SYM float_options field_options
- { $$=MYSQL_TYPE_NEWDECIMAL;}
- | NUMERIC_SYM float_options field_options
- { $$=MYSQL_TYPE_NEWDECIMAL;}
- | FIXED_SYM float_options field_options
- { $$=MYSQL_TYPE_NEWDECIMAL;}
- | ENUM {Lex->interval_list.empty();} '(' string_list ')' opt_binary
- { $$=MYSQL_TYPE_ENUM; }
- | SET { Lex->interval_list.empty();} '(' string_list ')' opt_binary
- { $$=MYSQL_TYPE_SET; }
- | LONG_SYM opt_binary { $$=MYSQL_TYPE_MEDIUM_BLOB; }
- | SERIAL_SYM
- {
- $$=MYSQL_TYPE_LONGLONG;
- Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
- UNIQUE_FLAG);
- }
- ;
+ | MEDIUMBLOB
+ {
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_MEDIUM_BLOB;
+ }
+ | LONGBLOB
+ {
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_LONG_BLOB;
+ }
+ | LONG_SYM VARBINARY
+ {
+ Lex->charset=&my_charset_bin;
+ $$=MYSQL_TYPE_MEDIUM_BLOB;
+ }
+ | LONG_SYM varchar opt_binary
+ { $$=MYSQL_TYPE_MEDIUM_BLOB; }
+ | TINYTEXT opt_binary
+ { $$=MYSQL_TYPE_TINY_BLOB; }
+ | TEXT_SYM opt_len opt_binary
+ { $$=MYSQL_TYPE_BLOB; }
+ | MEDIUMTEXT opt_binary
+ { $$=MYSQL_TYPE_MEDIUM_BLOB; }
+ | LONGTEXT opt_binary
+ { $$=MYSQL_TYPE_LONG_BLOB; }
+ | DECIMAL_SYM float_options field_options
+ { $$=MYSQL_TYPE_NEWDECIMAL;}
+ | NUMERIC_SYM float_options field_options
+ { $$=MYSQL_TYPE_NEWDECIMAL;}
+ | FIXED_SYM float_options field_options
+ { $$=MYSQL_TYPE_NEWDECIMAL;}
+ | ENUM
+ {Lex->interval_list.empty();}
+ '(' string_list ')' opt_binary
+ { $$=MYSQL_TYPE_ENUM; }
+ | SET
+ { Lex->interval_list.empty();}
+ '(' string_list ')' opt_binary
+ { $$=MYSQL_TYPE_SET; }
+ | LONG_SYM opt_binary
+ { $$=MYSQL_TYPE_MEDIUM_BLOB; }
+ | SERIAL_SYM
+ {
+ $$=MYSQL_TYPE_LONGLONG;
+ Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
+ UNIQUE_FLAG);
+ }
+ ;
spatial_type:
- GEOMETRY_SYM { $$= Field::GEOM_GEOMETRY; }
- | GEOMETRYCOLLECTION { $$= Field::GEOM_GEOMETRYCOLLECTION; }
- | POINT_SYM { Lex->length= (char*)"21";
- $$= Field::GEOM_POINT;
- }
- | MULTIPOINT { $$= Field::GEOM_MULTIPOINT; }
- | LINESTRING { $$= Field::GEOM_LINESTRING; }
- | MULTILINESTRING { $$= Field::GEOM_MULTILINESTRING; }
- | POLYGON { $$= Field::GEOM_POLYGON; }
- | MULTIPOLYGON { $$= Field::GEOM_MULTIPOLYGON; }
- ;
+ GEOMETRY_SYM { $$= Field::GEOM_GEOMETRY; }
+ | GEOMETRYCOLLECTION { $$= Field::GEOM_GEOMETRYCOLLECTION; }
+ | POINT_SYM
+ {
+ Lex->length= (char*)"21";
+ $$= Field::GEOM_POINT;
+ }
+ | MULTIPOINT { $$= Field::GEOM_MULTIPOINT; }
+ | LINESTRING { $$= Field::GEOM_LINESTRING; }
+ | MULTILINESTRING { $$= Field::GEOM_MULTILINESTRING; }
+ | POLYGON { $$= Field::GEOM_POLYGON; }
+ | MULTIPOLYGON { $$= Field::GEOM_MULTIPOLYGON; }
+ ;
char:
- CHAR_SYM {}
- ;
+ CHAR_SYM {}
+ ;
nchar:
- NCHAR_SYM {}
- | NATIONAL_SYM CHAR_SYM {}
- ;
+ NCHAR_SYM {}
+ | NATIONAL_SYM CHAR_SYM {}
+ ;
varchar:
- char VARYING {}
- | VARCHAR {}
- ;
+ char VARYING {}
+ | VARCHAR {}
+ ;
nvarchar:
- NATIONAL_SYM VARCHAR {}
- | NVARCHAR_SYM {}
- | NCHAR_SYM VARCHAR {}
- | NATIONAL_SYM CHAR_SYM VARYING {}
- | NCHAR_SYM VARYING {}
- ;
+ NATIONAL_SYM VARCHAR {}
+ | NVARCHAR_SYM {}
+ | NCHAR_SYM VARCHAR {}
+ | NATIONAL_SYM CHAR_SYM VARYING {}
+ | NCHAR_SYM VARYING {}
+ ;
int_type:
- INT_SYM { $$=MYSQL_TYPE_LONG; }
- | TINYINT { $$=MYSQL_TYPE_TINY; }
- | SMALLINT { $$=MYSQL_TYPE_SHORT; }
- | MEDIUMINT { $$=MYSQL_TYPE_INT24; }
- | BIGINT { $$=MYSQL_TYPE_LONGLONG; };
+ INT_SYM { $$=MYSQL_TYPE_LONG; }
+ | TINYINT { $$=MYSQL_TYPE_TINY; }
+ | SMALLINT { $$=MYSQL_TYPE_SHORT; }
+ | MEDIUMINT { $$=MYSQL_TYPE_INT24; }
+ | BIGINT { $$=MYSQL_TYPE_LONGLONG; }
+ ;
real_type:
- REAL { $$= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
- MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; }
- | DOUBLE_SYM { $$=MYSQL_TYPE_DOUBLE; }
- | DOUBLE_SYM PRECISION { $$=MYSQL_TYPE_DOUBLE; };
-
+ REAL
+ {
+ $$= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
+ MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
+ }
+ | DOUBLE_SYM
+ { $$=MYSQL_TYPE_DOUBLE; }
+ | DOUBLE_SYM PRECISION
+ { $$=MYSQL_TYPE_DOUBLE; }
+ ;
float_options:
- /* empty */ { Lex->dec=Lex->length= (char*)0; }
- | '(' NUM ')' { Lex->length=$2.str; Lex->dec= (char*)0; }
- | precision {};
+ /* empty */
+ { Lex->dec=Lex->length= (char*)0; }
+ | '(' NUM ')'
+ { Lex->length=$2.str; Lex->dec= (char*)0; }
+ | precision
+ {}
+ ;
precision:
- '(' NUM ',' NUM ')'
- {
- LEX *lex=Lex;
- lex->length=$2.str; lex->dec=$4.str;
- };
+ '(' NUM ',' NUM ')'
+ {
+ LEX *lex=Lex;
+ lex->length=$2.str;
+ lex->dec=$4.str;
+ }
+ ;
field_options:
- /* empty */ {}
- | field_opt_list {};
+ /* empty */ {}
+ | field_opt_list {}
+ ;
field_opt_list:
- field_opt_list field_option {}
- | field_option {};
+ field_opt_list field_option {}
+ | field_option {}
+ ;
field_option:
- SIGNED_SYM {}
- | UNSIGNED { Lex->type|= UNSIGNED_FLAG;}
- | ZEROFILL { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; };
+ SIGNED_SYM {}
+ | UNSIGNED { Lex->type|= UNSIGNED_FLAG;}
+ | ZEROFILL { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
+ ;
opt_len:
- /* empty */ { Lex->length=(char*) 0; } /* use default length */
- | '(' NUM ')' { Lex->length= $2.str; };
+ /* empty */ { Lex->length=(char*) 0; /* use default length */ }
+ | '(' NUM ')' { Lex->length= $2.str; }
+ ;
opt_precision:
- /* empty */ {}
- | precision {};
+ /* empty */ {}
+ | precision {}
+ ;
opt_attribute:
- /* empty */ {}
- | opt_attribute_list {};
+ /* empty */ {}
+ | opt_attribute_list {}
+ ;
opt_attribute_list:
- opt_attribute_list attribute {}
- | attribute;
+ opt_attribute_list attribute {}
+ | attribute
+ ;
attribute:
- NULL_SYM { Lex->type&= ~ NOT_NULL_FLAG; }
- | not NULL_SYM { Lex->type|= NOT_NULL_FLAG; }
- | DEFAULT now_or_signed_literal { Lex->default_value=$2; }
- | ON UPDATE_SYM NOW_SYM optional_braces
+ NULL_SYM { Lex->type&= ~ NOT_NULL_FLAG; }
+ | not NULL_SYM { Lex->type|= NOT_NULL_FLAG; }
+ | DEFAULT now_or_signed_literal { Lex->default_value=$2; }
+ | ON UPDATE_SYM NOW_SYM optional_braces
{ Lex->on_update_value= new Item_func_now_local(); }
- | AUTO_INC { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
- | SERIAL_SYM DEFAULT VALUE_SYM
- {
- LEX *lex=Lex;
- lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
- lex->alter_info.flags|= ALTER_ADD_INDEX;
- }
- | opt_primary KEY_SYM
- {
- LEX *lex=Lex;
- lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
- lex->alter_info.flags|= ALTER_ADD_INDEX;
- }
- | UNIQUE_SYM
- {
- LEX *lex=Lex;
- lex->type|= UNIQUE_FLAG;
- lex->alter_info.flags|= ALTER_ADD_INDEX;
- }
- | UNIQUE_SYM KEY_SYM
- {
- LEX *lex=Lex;
- lex->type|= UNIQUE_KEY_FLAG;
- lex->alter_info.flags|= ALTER_ADD_INDEX;
- }
- | COMMENT_SYM TEXT_STRING_sys { Lex->comment= $2; }
- | COLLATE_SYM collation_name
- {
- if (Lex->charset && !my_charset_same(Lex->charset,$2))
- {
- my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
+ | AUTO_INC { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
+ | SERIAL_SYM DEFAULT VALUE_SYM
+ {
+ LEX *lex=Lex;
+ lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
+ lex->alter_info.flags|= ALTER_ADD_INDEX;
+ }
+ | opt_primary KEY_SYM
+ {
+ LEX *lex=Lex;
+ lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
+ lex->alter_info.flags|= ALTER_ADD_INDEX;
+ }
+ | UNIQUE_SYM
+ {
+ LEX *lex=Lex;
+ lex->type|= UNIQUE_FLAG;
+ lex->alter_info.flags|= ALTER_ADD_INDEX;
+ }
+ | UNIQUE_SYM KEY_SYM
+ {
+ LEX *lex=Lex;
+ lex->type|= UNIQUE_KEY_FLAG;
+ lex->alter_info.flags|= ALTER_ADD_INDEX;
+ }
+ | COMMENT_SYM TEXT_STRING_sys { Lex->comment= $2; }
+ | COLLATE_SYM collation_name
+ {
+ if (Lex->charset && !my_charset_same(Lex->charset,$2))
+ {
+ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
$2->name,Lex->charset->csname);
- MYSQL_YYABORT;
- }
- else
- {
- Lex->charset=$2;
- }
- }
- ;
+ MYSQL_YYABORT;
+ }
+ else
+ {
+ Lex->charset=$2;
+ }
+ }
+ ;
now_or_signed_literal:
- NOW_SYM optional_braces { $$= new Item_func_now_local(); }
- | signed_literal { $$=$1; }
+ NOW_SYM optional_braces
+ { $$= new Item_func_now_local(); }
+ | signed_literal
+ { $$=$1; }
;
charset:
- CHAR_SYM SET {}
- | CHARSET {}
- ;
+ CHAR_SYM SET {}
+ | CHARSET {}
+ ;
charset_name:
- ident_or_text
- {
- if (!($$=get_charset_by_csname($1.str,MY_CS_PRIMARY,MYF(0))))
- {
- my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- }
- | BINARY { $$= &my_charset_bin; }
- ;
+ ident_or_text
+ {
+ if (!($$=get_charset_by_csname($1.str,MY_CS_PRIMARY,MYF(0))))
+ {
+ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ }
+ | BINARY { $$= &my_charset_bin; }
+ ;
charset_name_or_default:
- charset_name { $$=$1; }
- | DEFAULT { $$=NULL; } ;
+ charset_name { $$=$1; }
+ | DEFAULT { $$=NULL; }
+ ;
opt_load_data_charset:
- /* Empty */ { $$= NULL; }
- | charset charset_name_or_default { $$= $2; }
- ;
+ /* Empty */ { $$= NULL; }
+ | charset charset_name_or_default { $$= $2; }
+ ;
old_or_new_charset_name:
- ident_or_text
- {
- if (!($$=get_charset_by_csname($1.str,MY_CS_PRIMARY,MYF(0))) &&
- !($$=get_old_charset_by_name($1.str)))
- {
- my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- }
- | BINARY { $$= &my_charset_bin; }
- ;
+ ident_or_text
+ {
+ if (!($$=get_charset_by_csname($1.str,MY_CS_PRIMARY,MYF(0))) &&
+ !($$=get_old_charset_by_name($1.str)))
+ {
+ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ }
+ | BINARY { $$= &my_charset_bin; }
+ ;
old_or_new_charset_name_or_default:
- old_or_new_charset_name { $$=$1; }
- | DEFAULT { $$=NULL; } ;
+ old_or_new_charset_name { $$=$1; }
+ | DEFAULT { $$=NULL; }
+ ;
collation_name:
- ident_or_text
- {
- if (!($$=get_charset_by_name($1.str,MYF(0))))
- {
- my_error(ER_UNKNOWN_COLLATION, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- };
+ ident_or_text
+ {
+ if (!($$=get_charset_by_name($1.str,MYF(0))))
+ {
+ my_error(ER_UNKNOWN_COLLATION, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ }
+ ;
opt_collate:
- /* empty */ { $$=NULL; }
- | COLLATE_SYM collation_name_or_default { $$=$2; }
- ;
+ /* empty */ { $$=NULL; }
+ | COLLATE_SYM collation_name_or_default { $$=$2; }
+ ;
collation_name_or_default:
- collation_name { $$=$1; }
- | DEFAULT { $$=NULL; } ;
+ collation_name { $$=$1; }
+ | DEFAULT { $$=NULL; }
+ ;
opt_default:
- /* empty */ {}
- | DEFAULT {};
+ /* empty */ {}
+ | DEFAULT {}
+ ;
opt_binary:
- /* empty */ { Lex->charset=NULL; }
- | ASCII_SYM opt_bin_mod { Lex->charset=&my_charset_latin1; }
- | BYTE_SYM { Lex->charset=&my_charset_bin; }
- | UNICODE_SYM opt_bin_mod
- {
- if (!(Lex->charset=get_charset_by_csname("ucs2",
- MY_CS_PRIMARY,MYF(0))))
- {
- my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
- MYSQL_YYABORT;
- }
- }
- | charset charset_name opt_bin_mod { Lex->charset=$2; }
- | BINARY opt_bin_charset { Lex->type|= BINCMP_FLAG; };
+ /* empty */ { Lex->charset=NULL; }
+ | ASCII_SYM opt_bin_mod { Lex->charset=&my_charset_latin1; }
+ | BYTE_SYM { Lex->charset=&my_charset_bin; }
+ | UNICODE_SYM opt_bin_mod
+ {
+ if (!(Lex->charset=get_charset_by_csname("ucs2",
+ MY_CS_PRIMARY,MYF(0))))
+ {
+ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
+ MYSQL_YYABORT;
+ }
+ }
+ | charset charset_name opt_bin_mod { Lex->charset=$2; }
+ | BINARY opt_bin_charset { Lex->type|= BINCMP_FLAG; }
+ ;
opt_bin_mod:
- /* empty */ { }
- | BINARY { Lex->type|= BINCMP_FLAG; };
+ /* empty */ { }
+ | BINARY { Lex->type|= BINCMP_FLAG; }
+ ;
opt_bin_charset:
- /* empty */ { Lex->charset= NULL; }
- | ASCII_SYM { Lex->charset=&my_charset_latin1; }
- | UNICODE_SYM
- {
- if (!(Lex->charset=get_charset_by_csname("ucs2",
- MY_CS_PRIMARY,MYF(0))))
- {
- my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
- MYSQL_YYABORT;
- }
- }
- | charset charset_name { Lex->charset=$2; } ;
+ /* empty */ { Lex->charset= NULL; }
+ | ASCII_SYM { Lex->charset=&my_charset_latin1; }
+ | UNICODE_SYM
+ {
+ if (!(Lex->charset=get_charset_by_csname("ucs2",
+ MY_CS_PRIMARY,MYF(0))))
+ {
+ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
+ MYSQL_YYABORT;
+ }
+ }
+ | charset charset_name { Lex->charset=$2; }
+ ;
opt_primary:
- /* empty */
- | PRIMARY_SYM
- ;
+ /* empty */
+ | PRIMARY_SYM
+ ;
references:
- REFERENCES table_ident
- {
- LEX *lex=Lex;
- lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
- lex->ref_list.empty();
- }
- opt_ref_list
- {
- $$=$2;
- };
+ REFERENCES table_ident
+ {
+ LEX *lex=Lex;
+ lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
+ lex->ref_list.empty();
+ }
+ opt_ref_list
+ {
+ $$=$2;
+ }
+ ;
opt_ref_list:
- /* empty */ opt_on_delete {}
- | '(' ref_list ')' opt_on_delete {};
+ /* empty */ opt_on_delete {}
+ | '(' ref_list ')' opt_on_delete {}
+ ;
ref_list:
- ref_list ',' ident { Lex->ref_list.push_back(new Key_part_spec($3.str)); }
- | ident { Lex->ref_list.push_back(new Key_part_spec($1.str)); };
-
+ ref_list ',' ident { Lex->ref_list.push_back(new Key_part_spec($3.str)); }
+ | ident { Lex->ref_list.push_back(new Key_part_spec($1.str)); }
+ ;
opt_on_delete:
- /* empty */ {}
- | opt_on_delete_list {};
+ /* empty */ {}
+ | opt_on_delete_list {}
+ ;
opt_on_delete_list:
- opt_on_delete_list opt_on_delete_item {}
- | opt_on_delete_item {};
+ opt_on_delete_list opt_on_delete_item {}
+ | opt_on_delete_item {}
+ ;
opt_on_delete_item:
- ON DELETE_SYM delete_option { Lex->fk_delete_opt= $3; }
- | ON UPDATE_SYM delete_option { Lex->fk_update_opt= $3; }
- | MATCH FULL { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
- | MATCH PARTIAL { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
- | MATCH SIMPLE_SYM { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; };
+ ON DELETE_SYM delete_option { Lex->fk_delete_opt= $3; }
+ | ON UPDATE_SYM delete_option { Lex->fk_update_opt= $3; }
+ | MATCH FULL { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
+ | MATCH PARTIAL { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
+ | MATCH SIMPLE_SYM { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
+ ;
delete_option:
- RESTRICT { $$= (int) Foreign_key::FK_OPTION_RESTRICT; }
- | CASCADE { $$= (int) Foreign_key::FK_OPTION_CASCADE; }
- | SET NULL_SYM { $$= (int) Foreign_key::FK_OPTION_SET_NULL; }
- | NO_SYM ACTION { $$= (int) Foreign_key::FK_OPTION_NO_ACTION; }
- | SET DEFAULT { $$= (int) Foreign_key::FK_OPTION_DEFAULT; };
+ RESTRICT { $$= (int) Foreign_key::FK_OPTION_RESTRICT; }
+ | CASCADE { $$= (int) Foreign_key::FK_OPTION_CASCADE; }
+ | SET NULL_SYM { $$= (int) Foreign_key::FK_OPTION_SET_NULL; }
+ | NO_SYM ACTION { $$= (int) Foreign_key::FK_OPTION_NO_ACTION; }
+ | SET DEFAULT { $$= (int) Foreign_key::FK_OPTION_DEFAULT; }
+ ;
key_type:
- key_or_index { $$= Key::MULTIPLE; }
- | FULLTEXT_SYM opt_key_or_index { $$= Key::FULLTEXT; }
- | SPATIAL_SYM opt_key_or_index
- {
+ key_or_index { $$= Key::MULTIPLE; }
+ | FULLTEXT_SYM opt_key_or_index { $$= Key::FULLTEXT; }
+ | SPATIAL_SYM opt_key_or_index
+ {
#ifdef HAVE_SPATIAL
- $$= Key::SPATIAL;
+ $$= Key::SPATIAL;
#else
- my_error(ER_FEATURE_DISABLED, MYF(0),
+ my_error(ER_FEATURE_DISABLED, MYF(0),
sym_group_geom.name, sym_group_geom.needed_define);
- MYSQL_YYABORT;
+ MYSQL_YYABORT;
#endif
- };
+ }
+ ;
constraint_key_type:
- PRIMARY_SYM KEY_SYM { $$= Key::PRIMARY; }
- | UNIQUE_SYM opt_key_or_index { $$= Key::UNIQUE; };
+ PRIMARY_SYM KEY_SYM { $$= Key::PRIMARY; }
+ | UNIQUE_SYM opt_key_or_index { $$= Key::UNIQUE; }
+ ;
key_or_index:
- KEY_SYM {}
- | INDEX_SYM {};
+ KEY_SYM {}
+ | INDEX_SYM {}
+ ;
opt_key_or_index:
- /* empty */ {}
- | key_or_index
- ;
+ /* empty */ {}
+ | key_or_index
+ ;
keys_or_index:
- KEYS {}
- | INDEX_SYM {}
- | INDEXES {};
+ KEYS {}
+ | INDEX_SYM {}
+ | INDEXES {}
+ ;
opt_unique_or_fulltext:
- /* empty */ { $$= Key::MULTIPLE; }
- | UNIQUE_SYM { $$= Key::UNIQUE; }
- | FULLTEXT_SYM { $$= Key::FULLTEXT;}
- | SPATIAL_SYM
- {
+ /* empty */ { $$= Key::MULTIPLE; }
+ | UNIQUE_SYM { $$= Key::UNIQUE; }
+ | FULLTEXT_SYM { $$= Key::FULLTEXT;}
+ | SPATIAL_SYM
+ {
#ifdef HAVE_SPATIAL
- $$= Key::SPATIAL;
+ $$= Key::SPATIAL;
#else
my_error(ER_FEATURE_DISABLED, MYF(0),
sym_group_geom.name, sym_group_geom.needed_define);
- MYSQL_YYABORT;
+ MYSQL_YYABORT;
#endif
- }
+ }
;
init_key_options:
- {
- Lex->key_create_info= default_key_create_info;
- }
- ;
+ {
+ Lex->key_create_info= default_key_create_info;
+ }
+ ;
/*
For now, key_alg initializies lex->key_create_info.
@@ -5023,30 +5271,30 @@ init_key_options:
*/
key_alg:
- /* empty */ init_key_options
- | init_key_options key_using_alg
- ;
+ init_key_options
+ | init_key_options key_using_alg
+ ;
key_options:
- /* empty */ {}
- | key_opts
- ;
+ /* empty */ {}
+ | key_opts
+ ;
key_opts:
- key_opt
- | key_opts key_opt
- ;
+ key_opt
+ | key_opts key_opt
+ ;
key_using_alg:
- USING btree_or_rtree { Lex->key_create_info.algorithm= $2; }
- | TYPE_SYM btree_or_rtree { Lex->key_create_info.algorithm= $2; }
+ USING btree_or_rtree { Lex->key_create_info.algorithm= $2; }
+ | TYPE_SYM btree_or_rtree { Lex->key_create_info.algorithm= $2; }
;
key_opt:
- key_using_alg
- | KEY_BLOCK_SIZE opt_equal ulong_num
- { Lex->key_create_info.block_size= $3; }
- | WITH PARSER_SYM IDENT_sys
+ key_using_alg
+ | KEY_BLOCK_SIZE opt_equal ulong_num
+ { Lex->key_create_info.block_size= $3; }
+ | WITH PARSER_SYM IDENT_sys
{
if (plugin_is_ready(&$3, MYSQL_FTPARSER_PLUGIN))
Lex->key_create_info.parser_name= $3;
@@ -5058,126 +5306,127 @@ key_opt:
}
;
-
btree_or_rtree:
- BTREE_SYM { $$= HA_KEY_ALG_BTREE; }
- | RTREE_SYM
- {
- $$= HA_KEY_ALG_RTREE;
- }
- | HASH_SYM { $$= HA_KEY_ALG_HASH; };
+ BTREE_SYM { $$= HA_KEY_ALG_BTREE; }
+ | RTREE_SYM { $$= HA_KEY_ALG_RTREE; }
+ | HASH_SYM { $$= HA_KEY_ALG_HASH; }
+ ;
key_list:
- key_list ',' key_part order_dir { Lex->col_list.push_back($3); }
- | key_part order_dir { Lex->col_list.push_back($1); };
+ key_list ',' key_part order_dir { Lex->col_list.push_back($3); }
+ | key_part order_dir { Lex->col_list.push_back($1); }
+ ;
key_part:
- ident { $$=new Key_part_spec($1.str); }
- | ident '(' NUM ')'
- {
- int key_part_len= atoi($3.str);
- if (!key_part_len)
+ ident { $$=new Key_part_spec($1.str); }
+ | ident '(' NUM ')'
{
- my_error(ER_KEY_PART_0, MYF(0), $1.str);
+ int key_part_len= atoi($3.str);
+ if (!key_part_len)
+ {
+ my_error(ER_KEY_PART_0, MYF(0), $1.str);
+ }
+ $$=new Key_part_spec($1.str,(uint) key_part_len);
}
- $$=new Key_part_spec($1.str,(uint) key_part_len);
- };
+ ;
opt_ident:
- /* empty */ { $$=(char*) 0; } /* Defaultlength */
- | field_ident { $$=$1.str; };
+ /* empty */ { $$=(char*) 0; /* Default length */ }
+ | field_ident { $$=$1.str; }
+ ;
opt_component:
- /* empty */ { $$= null_lex_str; }
- | '.' ident { $$= $2; };
+ /* empty */ { $$= null_lex_str; }
+ | '.' ident { $$= $2; }
+ ;
string_list:
- text_string { Lex->interval_list.push_back($1); }
- | string_list ',' text_string { Lex->interval_list.push_back($3); };
+ text_string { Lex->interval_list.push_back($1); }
+ | string_list ',' text_string { Lex->interval_list.push_back($3); };
/*
** Alter table
*/
alter:
- ALTER opt_ignore TABLE_SYM table_ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->name.str= 0;
- lex->name.length= 0;
- lex->sql_command= SQLCOM_ALTER_TABLE;
- lex->duplicates= DUP_ERROR;
- if (!lex->select_lex.add_table_to_list(thd, $4, NULL,
- TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- lex->alter_info.reset();
- lex->col_list.empty();
- lex->select_lex.init_order();
- lex->select_lex.db=
- ((TABLE_LIST*) lex->select_lex.table_list.first)->db;
- bzero((char*) &lex->create_info,sizeof(lex->create_info));
- lex->create_info.db_type= 0;
- lex->create_info.default_table_charset= NULL;
- lex->create_info.row_type= ROW_TYPE_NOT_USED;
- lex->alter_info.reset();
- lex->no_write_to_binlog= 0;
- lex->create_info.storage_media= HA_SM_DEFAULT;
- }
- alter_commands
- {}
- | ALTER DATABASE ident_or_empty
+ ALTER opt_ignore TABLE_SYM table_ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->name.str= 0;
+ lex->name.length= 0;
+ lex->sql_command= SQLCOM_ALTER_TABLE;
+ lex->duplicates= DUP_ERROR;
+ if (!lex->select_lex.add_table_to_list(thd, $4, NULL,
+ TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
+ lex->alter_info.reset();
+ lex->col_list.empty();
+ lex->select_lex.init_order();
+ lex->select_lex.db=
+ ((TABLE_LIST*) lex->select_lex.table_list.first)->db;
+ bzero((char*) &lex->create_info,sizeof(lex->create_info));
+ lex->create_info.db_type= 0;
+ lex->create_info.default_table_charset= NULL;
+ lex->create_info.row_type= ROW_TYPE_NOT_USED;
+ lex->alter_info.reset();
+ lex->no_write_to_binlog= 0;
+ lex->create_info.storage_media= HA_SM_DEFAULT;
+ }
+ alter_commands
+ {}
+ | ALTER DATABASE ident_or_empty
{
Lex->create_info.default_table_charset= NULL;
Lex->create_info.used_fields= 0;
}
create_database_options
- {
- LEX *lex=Lex;
- lex->sql_command=SQLCOM_ALTER_DB;
- lex->name= $3;
+ {
+ LEX *lex=Lex;
+ lex->sql_command=SQLCOM_ALTER_DB;
+ lex->name= $3;
if (lex->name.str == NULL &&
lex->copy_db_to(&lex->name.str, &lex->name.length))
MYSQL_YYABORT;
- }
- | ALTER PROCEDURE sp_name
- {
- LEX *lex= Lex;
-
- if (lex->sphead)
- {
- my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
- MYSQL_YYABORT;
- }
- bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
- }
- sp_a_chistics
- {
- LEX *lex=Lex;
-
- lex->sql_command= SQLCOM_ALTER_PROCEDURE;
- lex->spname= $3;
- }
- | ALTER FUNCTION_SYM sp_name
- {
- LEX *lex= Lex;
-
- if (lex->sphead)
- {
- my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
- MYSQL_YYABORT;
- }
- bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
- }
- sp_a_chistics
- {
- LEX *lex=Lex;
-
- lex->sql_command= SQLCOM_ALTER_FUNCTION;
- lex->spname= $3;
- }
+ }
+ | ALTER PROCEDURE sp_name
+ {
+ LEX *lex= Lex;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
+ MYSQL_YYABORT;
+ }
+ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
+ }
+ sp_a_chistics
+ {
+ LEX *lex=Lex;
+
+ lex->sql_command= SQLCOM_ALTER_PROCEDURE;
+ lex->spname= $3;
+ }
+ | ALTER FUNCTION_SYM sp_name
+ {
+ LEX *lex= Lex;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
+ MYSQL_YYABORT;
+ }
+ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
+ }
+ sp_a_chistics
+ {
+ LEX *lex=Lex;
+
+ lex->sql_command= SQLCOM_ALTER_FUNCTION;
+ lex->spname= $3;
+ }
| ALTER view_algorithm definer
- {
+ {
LEX *lex= Lex;
if (lex->sphead)
@@ -5204,11 +5453,11 @@ alter:
MYSQL_YYABORT;
}
lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
- lex->create_view_mode= VIEW_ALTER;
- }
+ lex->create_view_mode= VIEW_ALTER;
+ }
view_tail
- {}
- | ALTER definer EVENT_SYM sp_name
+ {}
+ | ALTER definer EVENT_SYM sp_name
/*
BE CAREFUL when you add a new rule to update the block where
YYTHD->client_capabilities is set back to original value
@@ -5253,7 +5502,7 @@ alter:
if (!($6 || $7 || $8 || $9 || $10))
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
+ my_parse_error(ER(ER_SYNTAX_ERROR));
MYSQL_YYABORT;
}
/*
@@ -5289,15 +5538,17 @@ alter:
lex->server_options.server_name= $3.str;
lex->server_options.server_name_length= $3.length;
}
- ;
+ ;
-ev_alter_on_schedule_completion: /* empty */ { $$= 0;}
+ev_alter_on_schedule_completion:
+ /* empty */ { $$= 0;}
| ON SCHEDULE_SYM ev_schedule_time { $$= 1; }
| ev_on_completion { $$= 1; }
| ON SCHEDULE_SYM ev_schedule_time ev_on_completion { $$= 1; }
- ;
+ ;
-opt_ev_rename_to: /* empty */ { $$= 0;}
+opt_ev_rename_to:
+ /* empty */ { $$= 0;}
| RENAME TO_SYM sp_name
{
/*
@@ -5307,19 +5558,22 @@ opt_ev_rename_to: /* empty */ { $$= 0;}
Lex->spname= $3;
$$= 1;
}
- ;
+ ;
-opt_ev_sql_stmt: /* empty*/ { $$= 0;}
+opt_ev_sql_stmt:
+ /* empty*/ { $$= 0;}
| DO_SYM ev_sql_stmt { $$= 1; }
;
ident_or_empty:
- /* empty */ { $$.str= 0; $$.length= 0; }
- | ident { $$= $1; };
+ /* empty */ { $$.str= 0; $$.length= 0; }
+ | ident { $$= $1; }
+ ;
alter_commands:
- | DISCARD TABLESPACE { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
- | IMPORT TABLESPACE { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
+ /* empty */
+ | DISCARD TABLESPACE { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
+ | IMPORT TABLESPACE { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
| alter_list
opt_partitioning
| alter_list
@@ -5337,20 +5591,20 @@ alter_commands:
| add_partition_rule
| DROP PARTITION_SYM alt_part_name_list
{
- Lex->alter_info.flags|= ALTER_DROP_PARTITION;
+ Lex->alter_info.flags|= ALTER_DROP_PARTITION;
}
| REBUILD_SYM PARTITION_SYM opt_no_write_to_binlog
all_or_alt_part_name_list
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
+ lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
lex->no_write_to_binlog= $3;
}
| OPTIMIZE PARTITION_SYM opt_no_write_to_binlog
all_or_alt_part_name_list
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_OPTIMIZE_PARTITION;
+ lex->alter_info.flags|= ALTER_OPTIMIZE_PARTITION;
lex->no_write_to_binlog= $3;
lex->check_opt.init();
}
@@ -5359,7 +5613,7 @@ alter_commands:
all_or_alt_part_name_list
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_ANALYZE_PARTITION;
+ lex->alter_info.flags|= ALTER_ANALYZE_PARTITION;
lex->no_write_to_binlog= $3;
lex->check_opt.init();
}
@@ -5367,7 +5621,7 @@ alter_commands:
| CHECK_SYM PARTITION_SYM all_or_alt_part_name_list
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_CHECK_PARTITION;
+ lex->alter_info.flags|= ALTER_CHECK_PARTITION;
lex->check_opt.init();
}
opt_mi_check_type
@@ -5375,7 +5629,7 @@ alter_commands:
all_or_alt_part_name_list
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_REPAIR_PARTITION;
+ lex->alter_info.flags|= ALTER_REPAIR_PARTITION;
lex->no_write_to_binlog= $3;
lex->check_opt.init();
}
@@ -5383,104 +5637,104 @@ alter_commands:
| COALESCE PARTITION_SYM opt_no_write_to_binlog real_ulong_num
{
LEX *lex= Lex;
- lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
+ lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
lex->no_write_to_binlog= $3;
- lex->alter_info.no_parts= $4;
+ lex->alter_info.no_parts= $4;
}
| reorg_partition_rule
;
remove_partitioning:
- REMOVE_SYM PARTITIONING_SYM
- {
- Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
- }
+ REMOVE_SYM PARTITIONING_SYM
+ {
+ Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
+ }
;
all_or_alt_part_name_list:
- ALL
- {
- Lex->alter_info.flags|= ALTER_ALL_PARTITION;
- }
+ ALL
+ {
+ Lex->alter_info.flags|= ALTER_ALL_PARTITION;
+ }
| alt_part_name_list
;
add_partition_rule:
- ADD PARTITION_SYM opt_no_write_to_binlog
- {
- LEX *lex= Lex;
- lex->part_info= new partition_info();
- if (!lex->part_info)
+ ADD PARTITION_SYM opt_no_write_to_binlog
{
- mem_alloc_error(sizeof(partition_info));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ lex->part_info= new partition_info();
+ if (!lex->part_info)
+ {
+ mem_alloc_error(sizeof(partition_info));
+ MYSQL_YYABORT;
+ }
+ lex->alter_info.flags|= ALTER_ADD_PARTITION;
+ lex->no_write_to_binlog= $3;
}
- lex->alter_info.flags|= ALTER_ADD_PARTITION;
- lex->no_write_to_binlog= $3;
- }
- add_part_extra
- {}
+ add_part_extra
+ {}
;
add_part_extra:
+ /* empty */
| '(' part_def_list ')'
- {
- LEX *lex= Lex;
- lex->part_info->no_parts= lex->part_info->partitions.elements;
- }
+ {
+ LEX *lex= Lex;
+ lex->part_info->no_parts= lex->part_info->partitions.elements;
+ }
| PARTITIONS_SYM real_ulong_num
- {
- LEX *lex= Lex;
- lex->part_info->no_parts= $2;
- }
+ {
+ LEX *lex= Lex;
+ lex->part_info->no_parts= $2;
+ }
;
reorg_partition_rule:
- REORGANIZE_SYM PARTITION_SYM opt_no_write_to_binlog
- {
- LEX *lex= Lex;
- lex->part_info= new partition_info();
- if (!lex->part_info)
+ REORGANIZE_SYM PARTITION_SYM opt_no_write_to_binlog
{
+ LEX *lex= Lex;
+ lex->part_info= new partition_info();
+ if (!lex->part_info)
+ {
mem_alloc_error(sizeof(partition_info));
- MYSQL_YYABORT;
+ MYSQL_YYABORT;
+ }
+ lex->no_write_to_binlog= $3;
}
- lex->no_write_to_binlog= $3;
- }
- reorg_parts_rule
+ reorg_parts_rule
;
reorg_parts_rule:
- /* empty */
- {
- Lex->alter_info.flags|= ALTER_TABLE_REORG;
- }
- |
- alt_part_name_list
- {
- Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
- }
- INTO '(' part_def_list ')'
- {
- LEX *lex= Lex;
- lex->part_info->no_parts= lex->part_info->partitions.elements;
- }
+ /* empty */
+ {
+ Lex->alter_info.flags|= ALTER_TABLE_REORG;
+ }
+ | alt_part_name_list
+ {
+ Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
+ }
+ INTO '(' part_def_list ')'
+ {
+ LEX *lex= Lex;
+ lex->part_info->no_parts= lex->part_info->partitions.elements;
+ }
;
alt_part_name_list:
- alt_part_name_item {}
+ alt_part_name_item {}
| alt_part_name_list ',' alt_part_name_item {}
;
alt_part_name_item:
- ident
- {
- if (Lex->alter_info.partition_names.push_back($1.str))
+ ident
{
- mem_alloc_error(1);
- MYSQL_YYABORT;
+ if (Lex->alter_info.partition_names.push_back($1.str))
+ {
+ mem_alloc_error(1);
+ MYSQL_YYABORT;
+ }
}
- }
;
/*
@@ -5488,34 +5742,35 @@ alt_part_name_item:
*/
alter_list:
- alter_list_item
- | alter_list ',' alter_list_item
+ alter_list_item
+ | alter_list ',' alter_list_item
;
add_column:
- ADD opt_column
- {
- LEX *lex=Lex;
- lex->change=0;
- lex->alter_info.flags|= ALTER_ADD_COLUMN;
- };
+ ADD opt_column
+ {
+ LEX *lex=Lex;
+ lex->change=0;
+ lex->alter_info.flags|= ALTER_ADD_COLUMN;
+ }
+ ;
alter_list_item:
- add_column column_def opt_place { }
- | ADD key_def
- {
- Lex->alter_info.flags|= ALTER_ADD_INDEX;
- }
- | add_column '(' field_list ')'
- {
- Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
- }
- | CHANGE opt_column field_ident
- {
- LEX *lex=Lex;
- lex->change= $3.str;
- lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
- }
+ add_column column_def opt_place { }
+ | ADD key_def
+ {
+ Lex->alter_info.flags|= ALTER_ADD_INDEX;
+ }
+ | add_column '(' field_list ')'
+ {
+ Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
+ }
+ | CHANGE opt_column field_ident
+ {
+ LEX *lex=Lex;
+ lex->change= $3.str;
+ lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
+ }
field_spec opt_place
| MODIFY_SYM opt_column field_ident
{
@@ -5523,8 +5778,8 @@ alter_list_item:
lex->length=lex->dec=0; lex->type=0;
lex->default_value= lex->on_update_value= 0;
lex->comment=null_lex_str;
- lex->charset= NULL;
- lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
+ lex->charset= NULL;
+ lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
}
type opt_attribute
{
@@ -5534,66 +5789,66 @@ alter_list_item:
lex->length,lex->dec,lex->type,
lex->default_value, lex->on_update_value,
&lex->comment,
- $3.str, &lex->interval_list, lex->charset,
- lex->uint_geom_type))
- MYSQL_YYABORT;
+ $3.str, &lex->interval_list, lex->charset,
+ lex->uint_geom_type))
+ MYSQL_YYABORT;
}
opt_place
- | DROP opt_column field_ident opt_restrict
- {
- LEX *lex=Lex;
- lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::COLUMN,
+ | DROP opt_column field_ident opt_restrict
+ {
+ LEX *lex=Lex;
+ lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::COLUMN,
$3.str));
- lex->alter_info.flags|= ALTER_DROP_COLUMN;
- }
- | DROP FOREIGN KEY_SYM opt_ident
- {
- Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
- }
- | DROP PRIMARY_SYM KEY_SYM
- {
- LEX *lex=Lex;
- lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
- primary_key_name));
- lex->alter_info.flags|= ALTER_DROP_INDEX;
- }
- | DROP key_or_index field_ident
- {
- LEX *lex=Lex;
- lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
- $3.str));
- lex->alter_info.flags|= ALTER_DROP_INDEX;
- }
- | DISABLE_SYM KEYS
- {
- LEX *lex=Lex;
+ lex->alter_info.flags|= ALTER_DROP_COLUMN;
+ }
+ | DROP FOREIGN KEY_SYM opt_ident
+ {
+ Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
+ }
+ | DROP PRIMARY_SYM KEY_SYM
+ {
+ LEX *lex=Lex;
+ lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
+ primary_key_name));
+ lex->alter_info.flags|= ALTER_DROP_INDEX;
+ }
+ | DROP key_or_index field_ident
+ {
+ LEX *lex=Lex;
+ lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
+ $3.str));
+ lex->alter_info.flags|= ALTER_DROP_INDEX;
+ }
+ | DISABLE_SYM KEYS
+ {
+ LEX *lex=Lex;
lex->alter_info.keys_onoff= DISABLE;
- lex->alter_info.flags|= ALTER_KEYS_ONOFF;
+ lex->alter_info.flags|= ALTER_KEYS_ONOFF;
}
- | ENABLE_SYM KEYS
+ | ENABLE_SYM KEYS
{
- LEX *lex=Lex;
+ LEX *lex=Lex;
lex->alter_info.keys_onoff= ENABLE;
- lex->alter_info.flags|= ALTER_KEYS_ONOFF;
- }
- | ALTER opt_column field_ident SET DEFAULT signed_literal
- {
- LEX *lex=Lex;
- lex->alter_info.alter_list.push_back(new Alter_column($3.str,$6));
- lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
- }
- | ALTER opt_column field_ident DROP DEFAULT
- {
- LEX *lex=Lex;
- lex->alter_info.alter_list.push_back(new Alter_column($3.str,
+ lex->alter_info.flags|= ALTER_KEYS_ONOFF;
+ }
+ | ALTER opt_column field_ident SET DEFAULT signed_literal
+ {
+ LEX *lex=Lex;
+ lex->alter_info.alter_list.push_back(new Alter_column($3.str,$6));
+ lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
+ }
+ | ALTER opt_column field_ident DROP DEFAULT
+ {
+ LEX *lex=Lex;
+ lex->alter_info.alter_list.push_back(new Alter_column($3.str,
(Item*) 0));
- lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
- }
- | RENAME opt_to table_ident
- {
- LEX *lex=Lex;
- size_t dummy;
- lex->select_lex.db=$3->db.str;
+ lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
+ }
+ | RENAME opt_to table_ident
+ {
+ LEX *lex=Lex;
+ size_t dummy;
+ lex->select_lex.db=$3->db.str;
if (lex->select_lex.db == NULL &&
lex->copy_db_to(&lex->select_lex.db, &dummy))
{
@@ -5605,150 +5860,153 @@ alter_list_item:
my_error(ER_WRONG_TABLE_NAME, MYF(0), $3->table.str);
MYSQL_YYABORT;
}
- lex->name= $3->table;
- lex->alter_info.flags|= ALTER_RENAME;
- }
- | CONVERT_SYM TO_SYM charset charset_name_or_default opt_collate
- {
- if (!$4)
- {
- THD *thd= YYTHD;
- $4= thd->variables.collation_database;
- }
- $5= $5 ? $5 : $4;
- if (!my_charset_same($4,$5))
- {
- my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
+ lex->name= $3->table;
+ lex->alter_info.flags|= ALTER_RENAME;
+ }
+ | CONVERT_SYM TO_SYM charset charset_name_or_default opt_collate
+ {
+ if (!$4)
+ {
+ THD *thd= YYTHD;
+ $4= thd->variables.collation_database;
+ }
+ $5= $5 ? $5 : $4;
+ if (!my_charset_same($4,$5))
+ {
+ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
$5->name, $4->csname);
- MYSQL_YYABORT;
- }
- LEX *lex= Lex;
- lex->create_info.table_charset=
- lex->create_info.default_table_charset= $5;
- lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
- HA_CREATE_USED_DEFAULT_CHARSET);
- lex->alter_info.flags|= ALTER_CONVERT;
- }
+ MYSQL_YYABORT;
+ }
+ LEX *lex= Lex;
+ lex->create_info.table_charset=
+ lex->create_info.default_table_charset= $5;
+ lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
+ HA_CREATE_USED_DEFAULT_CHARSET);
+ lex->alter_info.flags|= ALTER_CONVERT;
+ }
| create_table_options_space_separated
- {
- LEX *lex=Lex;
- lex->alter_info.flags|= ALTER_OPTIONS;
- }
- | FORCE_SYM
- {
- Lex->alter_info.flags|= ALTER_FORCE;
- }
- | alter_order_clause
- {
- LEX *lex=Lex;
- lex->alter_info.flags|= ALTER_ORDER;
- };
+ {
+ LEX *lex=Lex;
+ lex->alter_info.flags|= ALTER_OPTIONS;
+ }
+ | FORCE_SYM
+ {
+ Lex->alter_info.flags|= ALTER_FORCE;
+ }
+ | alter_order_clause
+ {
+ LEX *lex=Lex;
+ lex->alter_info.flags|= ALTER_ORDER;
+ }
+ ;
opt_column:
- /* empty */ {}
- | COLUMN_SYM {};
+ /* empty */ {}
+ | COLUMN_SYM {}
+ ;
opt_ignore:
- /* empty */ { Lex->ignore= 0;}
- | IGNORE_SYM { Lex->ignore= 1;}
- ;
+ /* empty */ { Lex->ignore= 0;}
+ | IGNORE_SYM { Lex->ignore= 1;}
+ ;
opt_restrict:
- /* empty */ { Lex->drop_mode= DROP_DEFAULT; }
- | RESTRICT { Lex->drop_mode= DROP_RESTRICT; }
- | CASCADE { Lex->drop_mode= DROP_CASCADE; }
- ;
+ /* empty */ { Lex->drop_mode= DROP_DEFAULT; }
+ | RESTRICT { Lex->drop_mode= DROP_RESTRICT; }
+ | CASCADE { Lex->drop_mode= DROP_CASCADE; }
+ ;
opt_place:
- /* empty */ {}
- | AFTER_SYM ident { store_position_for_column($2.str); }
- | FIRST_SYM { store_position_for_column(first_keyword); };
+ /* empty */ {}
+ | AFTER_SYM ident { store_position_for_column($2.str); }
+ | FIRST_SYM { store_position_for_column(first_keyword); }
+ ;
opt_to:
- /* empty */ {}
- | TO_SYM {}
- | EQ {}
- | AS {};
+ /* empty */ {}
+ | TO_SYM {}
+ | EQ {}
+ | AS {}
+ ;
/*
SLAVE START and SLAVE STOP are deprecated. We keep them for compatibility.
*/
slave:
- START_SYM SLAVE slave_thread_opts
+ START_SYM SLAVE slave_thread_opts
{
- LEX *lex=Lex;
+ LEX *lex=Lex;
lex->sql_command = SQLCOM_SLAVE_START;
- lex->type = 0;
- /* We'll use mi structure for UNTIL options */
- bzero((char*) &lex->mi, sizeof(lex->mi));
+ lex->type = 0;
+ /* We'll use mi structure for UNTIL options */
+ bzero((char*) &lex->mi, sizeof(lex->mi));
/* If you change this code don't forget to update SLAVE START too */
}
slave_until
{}
| STOP_SYM SLAVE slave_thread_opts
{
- LEX *lex=Lex;
+ LEX *lex=Lex;
lex->sql_command = SQLCOM_SLAVE_STOP;
- lex->type = 0;
+ lex->type = 0;
/* If you change this code don't forget to update SLAVE STOP too */
}
- | SLAVE START_SYM slave_thread_opts
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_SLAVE_START;
- lex->type = 0;
- /* We'll use mi structure for UNTIL options */
- bzero((char*) &lex->mi, sizeof(lex->mi));
+ | SLAVE START_SYM slave_thread_opts
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_SLAVE_START;
+ lex->type = 0;
+ /* We'll use mi structure for UNTIL options */
+ bzero((char*) &lex->mi, sizeof(lex->mi));
}
slave_until
{}
- | SLAVE STOP_SYM slave_thread_opts
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_SLAVE_STOP;
- lex->type = 0;
- }
+ | SLAVE STOP_SYM slave_thread_opts
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_SLAVE_STOP;
+ lex->type = 0;
+ }
;
-
start:
- START_SYM TRANSACTION_SYM start_transaction_opts
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_BEGIN;
- lex->start_transaction_opt= $3;
- }
- ;
+ START_SYM TRANSACTION_SYM start_transaction_opts
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_BEGIN;
+ lex->start_transaction_opt= $3;
+ }
+ ;
start_transaction_opts:
- /*empty*/ { $$ = 0; }
+ /*empty*/ { $$ = 0; }
| WITH CONSISTENT_SYM SNAPSHOT_SYM
- {
- $$= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
- }
+ {
+ $$= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
+ }
;
slave_thread_opts:
- { Lex->slave_thd_opt= 0; }
- slave_thread_opt_list
- {}
- ;
+ { Lex->slave_thd_opt= 0; }
+ slave_thread_opt_list
+ {}
+ ;
slave_thread_opt_list:
- slave_thread_opt
- | slave_thread_opt_list ',' slave_thread_opt
- ;
+ slave_thread_opt
+ | slave_thread_opt_list ',' slave_thread_opt
+ ;
slave_thread_opt:
- /*empty*/ {}
- | SQL_THREAD { Lex->slave_thd_opt|=SLAVE_SQL; }
- | RELAY_THREAD { Lex->slave_thd_opt|=SLAVE_IO; }
- ;
+ /*empty*/ {}
+ | SQL_THREAD { Lex->slave_thd_opt|=SLAVE_SQL; }
+ | RELAY_THREAD { Lex->slave_thd_opt|=SLAVE_IO; }
+ ;
slave_until:
- /*empty*/ {}
- | UNTIL_SYM slave_until_opts
+ /*empty*/ {}
+ | UNTIL_SYM slave_until_opts
{
LEX *lex=Lex;
if ((lex->mi.log_file_name || lex->mi.pos) &&
@@ -5760,173 +6018,180 @@ slave_until:
ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
MYSQL_YYABORT;
}
-
}
- ;
+ ;
slave_until_opts:
- master_file_def
- | slave_until_opts ',' master_file_def ;
-
+ master_file_def
+ | slave_until_opts ',' master_file_def
+ ;
restore:
- RESTORE_SYM table_or_tables
- {
- Lex->sql_command = SQLCOM_RESTORE_TABLE;
- }
- table_list FROM TEXT_STRING_sys
- {
- Lex->backup_dir = $6.str;
- };
+ RESTORE_SYM table_or_tables
+ {
+ Lex->sql_command = SQLCOM_RESTORE_TABLE;
+ }
+ table_list FROM TEXT_STRING_sys
+ {
+ Lex->backup_dir = $6.str;
+ }
+ ;
backup:
- BACKUP_SYM table_or_tables
- {
- Lex->sql_command = SQLCOM_BACKUP_TABLE;
- }
- table_list TO_SYM TEXT_STRING_sys
- {
- Lex->backup_dir = $6.str;
- };
+ BACKUP_SYM table_or_tables
+ {
+ Lex->sql_command = SQLCOM_BACKUP_TABLE;
+ }
+ table_list TO_SYM TEXT_STRING_sys
+ {
+ Lex->backup_dir = $6.str;
+ }
+ ;
checksum:
- CHECKSUM_SYM table_or_tables
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_CHECKSUM;
- }
- table_list opt_checksum_type
- {}
- ;
+ CHECKSUM_SYM table_or_tables
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_CHECKSUM;
+ }
+ table_list opt_checksum_type
+ {}
+ ;
opt_checksum_type:
- /* nothing */ { Lex->check_opt.flags= 0; }
- | QUICK { Lex->check_opt.flags= T_QUICK; }
- | EXTENDED_SYM { Lex->check_opt.flags= T_EXTEND; }
+ /* nothing */ { Lex->check_opt.flags= 0; }
+ | QUICK { Lex->check_opt.flags= T_QUICK; }
+ | EXTENDED_SYM { Lex->check_opt.flags= T_EXTEND; }
;
repair:
- REPAIR opt_no_write_to_binlog table_or_tables
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_REPAIR;
- lex->no_write_to_binlog= $2;
- lex->check_opt.init();
- }
- table_list opt_mi_repair_type
- {}
- ;
+ REPAIR opt_no_write_to_binlog table_or_tables
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_REPAIR;
+ lex->no_write_to_binlog= $2;
+ lex->check_opt.init();
+ }
+ table_list opt_mi_repair_type
+ {}
+ ;
opt_mi_repair_type:
- /* empty */ { Lex->check_opt.flags = T_MEDIUM; }
- | mi_repair_types {};
+ /* empty */ { Lex->check_opt.flags = T_MEDIUM; }
+ | mi_repair_types {}
+ ;
mi_repair_types:
- mi_repair_type {}
- | mi_repair_type mi_repair_types {};
+ mi_repair_type {}
+ | mi_repair_type mi_repair_types {}
+ ;
mi_repair_type:
- QUICK { Lex->check_opt.flags|= T_QUICK; }
- | EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
- | USE_FRM { Lex->check_opt.sql_flags|= TT_USEFRM; };
+ QUICK { Lex->check_opt.flags|= T_QUICK; }
+ | EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
+ | USE_FRM { Lex->check_opt.sql_flags|= TT_USEFRM; }
+ ;
analyze:
- ANALYZE_SYM opt_no_write_to_binlog table_or_tables
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_ANALYZE;
- lex->no_write_to_binlog= $2;
- lex->check_opt.init();
- }
- table_list opt_mi_check_type
- {}
- ;
+ ANALYZE_SYM opt_no_write_to_binlog table_or_tables
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_ANALYZE;
+ lex->no_write_to_binlog= $2;
+ lex->check_opt.init();
+ }
+ table_list opt_mi_check_type
+ {}
+ ;
binlog_base64_event:
- BINLOG_SYM TEXT_STRING_sys
- {
- Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
- Lex->comment= $2;
- }
+ BINLOG_SYM TEXT_STRING_sys
+ {
+ Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
+ Lex->comment= $2;
+ }
;
check:
- CHECK_SYM table_or_tables
- {
- LEX *lex=Lex;
-
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_CHECK;
- lex->check_opt.init();
- }
- table_list opt_mi_check_type
- {}
- ;
+ CHECK_SYM table_or_tables
+ {
+ LEX *lex=Lex;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_CHECK;
+ lex->check_opt.init();
+ }
+ table_list opt_mi_check_type
+ {}
+ ;
opt_mi_check_type:
- /* empty */ { Lex->check_opt.flags = T_MEDIUM; }
- | mi_check_types {};
+ /* empty */ { Lex->check_opt.flags = T_MEDIUM; }
+ | mi_check_types {}
+ ;
mi_check_types:
- mi_check_type {}
- | mi_check_type mi_check_types {};
+ mi_check_type {}
+ | mi_check_type mi_check_types {}
+ ;
mi_check_type:
- QUICK { Lex->check_opt.flags|= T_QUICK; }
- | FAST_SYM { Lex->check_opt.flags|= T_FAST; }
- | MEDIUM_SYM { Lex->check_opt.flags|= T_MEDIUM; }
- | EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
- | CHANGED { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
- | FOR_SYM UPGRADE_SYM { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; };
+ QUICK { Lex->check_opt.flags|= T_QUICK; }
+ | FAST_SYM { Lex->check_opt.flags|= T_FAST; }
+ | MEDIUM_SYM { Lex->check_opt.flags|= T_MEDIUM; }
+ | EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
+ | CHANGED { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
+ | FOR_SYM UPGRADE_SYM { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
+ ;
optimize:
- OPTIMIZE opt_no_write_to_binlog table_or_tables
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_OPTIMIZE;
- lex->no_write_to_binlog= $2;
- lex->check_opt.init();
- }
- table_list opt_mi_check_type
- {}
- ;
+ OPTIMIZE opt_no_write_to_binlog table_or_tables
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_OPTIMIZE;
+ lex->no_write_to_binlog= $2;
+ lex->check_opt.init();
+ }
+ table_list opt_mi_check_type
+ {}
+ ;
opt_no_write_to_binlog:
- /* empty */ { $$= 0; }
- | NO_WRITE_TO_BINLOG { $$= 1; }
- | LOCAL_SYM { $$= 1; }
- ;
+ /* empty */ { $$= 0; }
+ | NO_WRITE_TO_BINLOG { $$= 1; }
+ | LOCAL_SYM { $$= 1; }
+ ;
rename:
- RENAME table_or_tables
- {
- Lex->sql_command= SQLCOM_RENAME_TABLE;
- }
- table_to_table_list
- {}
- | RENAME DATABASE
+ RENAME table_or_tables
+ {
+ Lex->sql_command= SQLCOM_RENAME_TABLE;
+ }
+ table_to_table_list
+ {}
+ | RENAME DATABASE
{
Lex->db_list.empty();
Lex->sql_command= SQLCOM_RENAME_DB;
}
db_to_db
{}
- | RENAME USER clear_privileges rename_list
+ | RENAME USER clear_privileges rename_list
{
- Lex->sql_command = SQLCOM_RENAME_USER;
+ Lex->sql_command = SQLCOM_RENAME_USER;
}
- ;
+ ;
rename_list:
- user TO_SYM user
- {
- if (Lex->users_list.push_back($1) || Lex->users_list.push_back($3))
- MYSQL_YYABORT;
- }
+ user TO_SYM user
+ {
+ if (Lex->users_list.push_back($1) || Lex->users_list.push_back($3))
+ MYSQL_YYABORT;
+ }
| rename_list ',' user TO_SYM user
{
if (Lex->users_list.push_back($3) || Lex->users_list.push_back($5))
@@ -5935,103 +6200,108 @@ rename_list:
;
table_to_table_list:
- table_to_table
- | table_to_table_list ',' table_to_table;
+ table_to_table
+ | table_to_table_list ',' table_to_table
+ ;
table_to_table:
- table_ident TO_SYM table_ident
- {
- LEX *lex=Lex;
- SELECT_LEX *sl= lex->current_select;
- if (!sl->add_table_to_list(lex->thd, $1,NULL,TL_OPTION_UPDATING,
- TL_IGNORE) ||
- !sl->add_table_to_list(lex->thd, $3,NULL,TL_OPTION_UPDATING,
- TL_IGNORE))
- MYSQL_YYABORT;
- };
+ table_ident TO_SYM table_ident
+ {
+ LEX *lex=Lex;
+ SELECT_LEX *sl= lex->current_select;
+ if (!sl->add_table_to_list(lex->thd, $1,NULL,TL_OPTION_UPDATING,
+ TL_IGNORE) ||
+ !sl->add_table_to_list(lex->thd, $3,NULL,TL_OPTION_UPDATING,
+ TL_IGNORE))
+ MYSQL_YYABORT;
+ }
+ ;
db_to_db:
- ident TO_SYM ident
- {
- LEX *lex=Lex;
- if (lex->db_list.push_back((LEX_STRING*)
- sql_memdup(&$1, sizeof(LEX_STRING))) ||
- lex->db_list.push_back((LEX_STRING*)
- sql_memdup(&$3, sizeof(LEX_STRING))))
+ ident TO_SYM ident
+ {
+ LEX *lex=Lex;
+ if (lex->db_list.push_back((LEX_STRING*)
+ sql_memdup(&$1, sizeof(LEX_STRING))) ||
+ lex->db_list.push_back((LEX_STRING*)
+ sql_memdup(&$3, sizeof(LEX_STRING))))
MYSQL_YYABORT;
- };
+ }
+ ;
keycache:
- CACHE_SYM INDEX_SYM keycache_list IN_SYM key_cache_name
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
- lex->ident= $5;
- }
+ CACHE_SYM INDEX_SYM keycache_list IN_SYM key_cache_name
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
+ lex->ident= $5;
+ }
;
keycache_list:
- assign_to_keycache
- | keycache_list ',' assign_to_keycache;
+ assign_to_keycache
+ | keycache_list ',' assign_to_keycache
+ ;
assign_to_keycache:
- table_ident cache_keys_spec
- {
- if (!Select->add_table_to_list(YYTHD, $1, NULL, 0, TL_READ,
- Select->pop_index_hints()))
- MYSQL_YYABORT;
- }
+ table_ident cache_keys_spec
+ {
+ if (!Select->add_table_to_list(YYTHD, $1, NULL, 0, TL_READ,
+ Select->pop_index_hints()))
+ MYSQL_YYABORT;
+ }
;
key_cache_name:
- ident { $$= $1; }
- | DEFAULT { $$ = default_key_cache_base; }
- ;
+ ident { $$= $1; }
+ | DEFAULT { $$ = default_key_cache_base; }
+ ;
preload:
- LOAD INDEX_SYM INTO CACHE_SYM
- {
- LEX *lex=Lex;
- lex->sql_command=SQLCOM_PRELOAD_KEYS;
- }
- preload_list
- {}
- ;
+ LOAD INDEX_SYM INTO CACHE_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command=SQLCOM_PRELOAD_KEYS;
+ }
+ preload_list
+ {}
+ ;
preload_list:
- preload_keys
- | preload_list ',' preload_keys;
+ preload_keys
+ | preload_list ',' preload_keys
+ ;
preload_keys:
- table_ident cache_keys_spec opt_ignore_leaves
- {
- if (!Select->add_table_to_list(YYTHD, $1, NULL, $3, TL_READ,
- Select->pop_index_hints()))
- MYSQL_YYABORT;
- }
- ;
+ table_ident cache_keys_spec opt_ignore_leaves
+ {
+ if (!Select->add_table_to_list(YYTHD, $1, NULL, $3, TL_READ,
+ Select->pop_index_hints()))
+ MYSQL_YYABORT;
+ }
+ ;
cache_keys_spec:
- {
- Lex->select_lex.alloc_index_hints(YYTHD);
- Select->set_index_hint_type(INDEX_HINT_USE,
- global_system_variables.old_mode ?
+ {
+ Lex->select_lex.alloc_index_hints(YYTHD);
+ Select->set_index_hint_type(INDEX_HINT_USE,
+ global_system_variables.old_mode ?
INDEX_HINT_MASK_JOIN :
INDEX_HINT_MASK_ALL);
- }
- cache_key_list_or_empty
+ }
+ cache_key_list_or_empty
;
cache_key_list_or_empty:
- /* empty */ { }
- | key_or_index '(' opt_key_usage_list ')'
- ;
+ /* empty */ { }
+ | key_or_index '(' opt_key_usage_list ')'
+ ;
opt_ignore_leaves:
- /* empty */
- { $$= 0; }
- | IGNORE_SYM LEAVES { $$= TL_OPTION_IGNORE_LEAVES; }
- ;
+ /* empty */
+ { $$= 0; }
+ | IGNORE_SYM LEAVES { $$= TL_OPTION_IGNORE_LEAVES; }
+ ;
/*
Select : retrieve data from table
@@ -6039,29 +6309,29 @@ opt_ignore_leaves:
select:
- select_init
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_SELECT;
- }
- ;
+ select_init
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_SELECT;
+ }
+ ;
/* Need select_init2 for subselects. */
select_init:
- SELECT_SYM select_init2
- |
- '(' select_paren ')' union_opt;
+ SELECT_SYM select_init2
+ | '(' select_paren ')' union_opt
+ ;
select_paren:
- SELECT_SYM select_part2
- {
- LEX *lex= Lex;
+ SELECT_SYM select_part2
+ {
+ LEX *lex= Lex;
SELECT_LEX * sel= lex->current_select;
- if (sel->set_braces(1))
- {
+ if (sel->set_braces(1))
+ {
my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
+ MYSQL_YYABORT;
+ }
if (sel->linkage == UNION_TYPE &&
!sel->master_unit()->first_select()->braces &&
sel->master_unit()->first_select()->linkage ==
@@ -6071,56 +6341,59 @@ select_paren:
MYSQL_YYABORT;
}
/* select in braces, can't contain global parameters */
- if (sel->master_unit()->fake_select_lex)
+ if (sel->master_unit()->fake_select_lex)
sel->master_unit()->global_parameters=
sel->master_unit()->fake_select_lex;
}
- | '(' select_paren ')';
+ | '(' select_paren ')'
+ ;
select_init2:
- select_part2
- {
- LEX *lex= Lex;
- SELECT_LEX * sel= lex->current_select;
- if (lex->current_select->set_braces(0))
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- if (sel->linkage == UNION_TYPE &&
- sel->master_unit()->first_select()->braces)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- }
- union_clause
- ;
+ select_part2
+ {
+ LEX *lex= Lex;
+ SELECT_LEX * sel= lex->current_select;
+ if (lex->current_select->set_braces(0))
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ if (sel->linkage == UNION_TYPE &&
+ sel->master_unit()->first_select()->braces)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ }
+ union_clause
+ ;
select_part2:
- {
- LEX *lex= Lex;
- SELECT_LEX *sel= lex->current_select;
- if (sel->linkage != UNION_TYPE)
- mysql_init_select(lex);
- lex->current_select->parsing_place= SELECT_LIST;
- }
- select_options select_item_list
- {
- Select->parsing_place= NO_MATTER;
- }
- select_into select_lock_type;
+ {
+ LEX *lex= Lex;
+ SELECT_LEX *sel= lex->current_select;
+ if (sel->linkage != UNION_TYPE)
+ mysql_init_select(lex);
+ lex->current_select->parsing_place= SELECT_LIST;
+ }
+ select_options select_item_list
+ {
+ Select->parsing_place= NO_MATTER;
+ }
+ select_into select_lock_type
+ ;
select_into:
- opt_order_clause opt_limit_clause {}
+ opt_order_clause opt_limit_clause {}
| into
- | select_from
- | into select_from
- | select_from into;
+ | select_from
+ | into select_from
+ | select_from into
+ ;
select_from:
- FROM join_table_list where_clause group_clause having_clause
- opt_order_clause opt_limit_clause procedure_clause
+ FROM join_table_list where_clause group_clause having_clause
+ opt_order_clause opt_limit_clause procedure_clause
{
Select->context.table_list=
Select->context.first_name_resolution_table=
@@ -6131,55 +6404,56 @@ select_from:
and DUAL is system table without fields.
Is "SELECT 1 FROM DUAL" any better than "SELECT 1" ?
Hmmm :) */
- ;
+ ;
select_options:
- /* empty*/
- | select_option_list
- {
- if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
- {
- my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
+ /* empty*/
+ | select_option_list
+ {
+ if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
+ {
+ my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
MYSQL_YYABORT;
- }
+ }
}
- ;
+ ;
select_option_list:
- select_option_list select_option
- | select_option;
+ select_option_list select_option
+ | select_option
+ ;
select_option:
- STRAIGHT_JOIN { Select->options|= SELECT_STRAIGHT_JOIN; }
- | HIGH_PRIORITY
- {
- if (check_simple_select())
- MYSQL_YYABORT;
- Lex->lock_option= TL_READ_HIGH_PRIORITY;
- }
- | DISTINCT { Select->options|= SELECT_DISTINCT; }
- | SQL_SMALL_RESULT { Select->options|= SELECT_SMALL_RESULT; }
- | SQL_BIG_RESULT { Select->options|= SELECT_BIG_RESULT; }
- | SQL_BUFFER_RESULT
- {
- if (check_simple_select())
- MYSQL_YYABORT;
- Select->options|= OPTION_BUFFER_RESULT;
- }
- | SQL_CALC_FOUND_ROWS
- {
- if (check_simple_select())
- MYSQL_YYABORT;
- Select->options|= OPTION_FOUND_ROWS;
- }
- | SQL_NO_CACHE_SYM
+ STRAIGHT_JOIN { Select->options|= SELECT_STRAIGHT_JOIN; }
+ | HIGH_PRIORITY
+ {
+ if (check_simple_select())
+ MYSQL_YYABORT;
+ Lex->lock_option= TL_READ_HIGH_PRIORITY;
+ }
+ | DISTINCT { Select->options|= SELECT_DISTINCT; }
+ | SQL_SMALL_RESULT { Select->options|= SELECT_SMALL_RESULT; }
+ | SQL_BIG_RESULT { Select->options|= SELECT_BIG_RESULT; }
+ | SQL_BUFFER_RESULT
+ {
+ if (check_simple_select())
+ MYSQL_YYABORT;
+ Select->options|= OPTION_BUFFER_RESULT;
+ }
+ | SQL_CALC_FOUND_ROWS
+ {
+ if (check_simple_select())
+ MYSQL_YYABORT;
+ Select->options|= OPTION_FOUND_ROWS;
+ }
+ | SQL_NO_CACHE_SYM
{
Lex->safe_to_cache_query=0;
- Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
+ Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
}
- | SQL_CACHE_SYM
- {
+ | SQL_CACHE_SYM
+ {
/*
Honor this flag only if SQL_NO_CACHE wasn't specified AND
we are parsing the outermost SELECT in the query.
@@ -6188,179 +6462,233 @@ select_option:
Lex->current_select == &Lex->select_lex)
{
Lex->safe_to_cache_query=1;
- Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
+ Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
}
- }
- | ALL { Select->options|= SELECT_ALL; }
- ;
+ }
+ | ALL { Select->options|= SELECT_ALL; }
+ ;
select_lock_type:
- /* empty */
- | FOR_SYM UPDATE_SYM
- {
- LEX *lex=Lex;
- lex->current_select->set_lock_for_tables(TL_WRITE);
- lex->safe_to_cache_query=0;
- }
- | LOCK_SYM IN_SYM SHARE_SYM MODE_SYM
- {
- LEX *lex=Lex;
- lex->current_select->
- set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
- lex->safe_to_cache_query=0;
- }
- ;
+ /* empty */
+ | FOR_SYM UPDATE_SYM
+ {
+ LEX *lex=Lex;
+ lex->current_select->set_lock_for_tables(TL_WRITE);
+ lex->safe_to_cache_query=0;
+ }
+ | LOCK_SYM IN_SYM SHARE_SYM MODE_SYM
+ {
+ LEX *lex=Lex;
+ lex->current_select->
+ set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
+ lex->safe_to_cache_query=0;
+ }
+ ;
select_item_list:
- select_item_list ',' select_item
- | select_item
- | '*'
- {
- THD *thd= YYTHD;
- if (add_item_to_list(thd,
+ select_item_list ',' select_item
+ | select_item
+ | '*'
+ {
+ THD *thd= YYTHD;
+ if (add_item_to_list(thd,
new Item_field(&thd->lex->current_select->
context,
NULL, NULL, "*")))
- MYSQL_YYABORT;
- (thd->lex->current_select->with_wild)++;
- };
-
+ MYSQL_YYABORT;
+ (thd->lex->current_select->with_wild)++;
+ }
+ ;
select_item:
- remember_name select_item2 remember_end select_alias
- {
+ remember_name select_item2 remember_end select_alias
+ {
THD *thd= YYTHD;
DBUG_ASSERT($1 < $3);
- if (add_item_to_list(thd, $2))
- MYSQL_YYABORT;
- if ($4.str)
+ if (add_item_to_list(thd, $2))
+ MYSQL_YYABORT;
+ if ($4.str)
{
$2->is_autogenerated_name= FALSE;
- $2->set_name($4.str, $4.length, system_charset_info);
+ $2->set_name($4.str, $4.length, system_charset_info);
}
- else if (!$2->name)
+ else if (!$2->name)
{
- $2->set_name($1, (uint) ($3 - $1), thd->charset());
- }
- };
-
+ $2->set_name($1, (uint) ($3 - $1), thd->charset());
+ }
+ }
+ ;
remember_name:
- {
- THD *thd= YYTHD;
- Lex_input_stream *lip= thd->m_lip;
- $$= (char*) lip->get_cpp_tok_start();
- };
+ {
+ THD *thd= YYTHD;
+ Lex_input_stream *lip= thd->m_lip;
+ $$= (char*) lip->get_cpp_tok_start();
+ }
+ ;
remember_end:
- {
- THD *thd= YYTHD;
- Lex_input_stream *lip= thd->m_lip;
- $$= (char*) lip->get_cpp_tok_end();
- };
+ {
+ THD *thd= YYTHD;
+ Lex_input_stream *lip= thd->m_lip;
+ $$= (char*) lip->get_cpp_tok_end();
+ }
+ ;
select_item2:
- table_wild { $$=$1; } /* table.* */
- | expr { $$=$1; };
+ table_wild { $$=$1; /* table.* */ }
+ | expr { $$=$1; }
+ ;
select_alias:
- /* empty */ { $$=null_lex_str;}
- | AS ident { $$=$2; }
- | AS TEXT_STRING_sys { $$=$2; }
- | ident { $$=$1; }
- | TEXT_STRING_sys { $$=$1; }
- ;
+ /* empty */ { $$=null_lex_str;}
+ | AS ident { $$=$2; }
+ | AS TEXT_STRING_sys { $$=$2; }
+ | ident { $$=$1; }
+ | TEXT_STRING_sys { $$=$1; }
+ ;
optional_braces:
- /* empty */ {}
- | '(' ')' {};
+ /* empty */ {}
+ | '(' ')' {}
+ ;
/* all possible expressions */
-expr:
- bool_term { Select->expr_list.push_front(new List<Item>); }
- bool_or_expr
+expr:
+ expr or expr %prec OR_SYM
{
- List<Item> *list= Select->expr_list.pop();
- if (list->elements)
+ /*
+ Design notes:
+ Do not use a manually maintained stack like thd->lex->xxx_list,
+ but use the internal bison stack ($$, $1 and $3) instead.
+ Using the bison stack is:
+ - more robust to changes in the grammar,
+ - guaranteed to be in sync with the parser state,
+ - better for performances (no memory allocation).
+ */
+ Item_cond_or *item1;
+ Item_cond_or *item3;
+ if (is_cond_or($1))
{
- list->push_front($1);
- $$= new Item_cond_or(*list);
- /* optimize construction of logical OR to reduce
- amount of objects for complex expressions */
+ item1= (Item_cond_or*) $1;
+ if (is_cond_or($3))
+ {
+ item3= (Item_cond_or*) $3;
+ /*
+ (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
+ */
+ item3->add_at_head(item1->argument_list());
+ $$ = $3;
+ }
+ else
+ {
+ /*
+ (X1 OR X2) OR Y ==> OR (X1, X2, Y)
+ */
+ item1->add($3);
+ $$ = $1;
+ }
+ }
+ else if (is_cond_or($3))
+ {
+ item3= (Item_cond_or*) $3;
+ /*
+ X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
+ */
+ item3->add_at_head($1);
+ $$ = $3;
}
else
- $$= $1;
- delete list;
+ {
+ /* X OR Y */
+ $$ = new (YYTHD->mem_root) Item_cond_or($1, $3);
+ }
}
- ;
-
-bool_or_expr:
- /* empty */
- | bool_or_expr or bool_term
- { Select->expr_list.head()->push_back($3); }
- ;
-
-bool_term:
- bool_term XOR bool_term { $$= new Item_cond_xor($1,$3); }
- | bool_factor { Select->expr_list.push_front(new List<Item>); }
- bool_and_expr
+ | expr XOR expr %prec XOR
{
- List<Item> *list= Select->expr_list.pop();
- if (list->elements)
+ /* XOR is a proprietary extension */
+ $$ = new (YYTHD->mem_root) Item_cond_xor($1, $3);
+ }
+ | expr and expr %prec AND_SYM
+ {
+ /* See comments in rule expr: expr or expr */
+ Item_cond_and *item1;
+ Item_cond_and *item3;
+ if (is_cond_and($1))
{
- list->push_front($1);
- $$= new Item_cond_and(*list);
- /* optimize construction of logical AND to reduce
- amount of objects for complex expressions */
+ item1= (Item_cond_and*) $1;
+ if (is_cond_and($3))
+ {
+ item3= (Item_cond_and*) $3;
+ /*
+ (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
+ */
+ item3->add_at_head(item1->argument_list());
+ $$ = $3;
+ }
+ else
+ {
+ /*
+ (X1 AND X2) AND Y ==> AND (X1, X2, Y)
+ */
+ item1->add($3);
+ $$ = $1;
+ }
+ }
+ else if (is_cond_and($3))
+ {
+ item3= (Item_cond_and*) $3;
+ /*
+ X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
+ */
+ item3->add_at_head($1);
+ $$ = $3;
}
else
- $$= $1;
- delete list;
+ {
+ /* X AND Y */
+ $$ = new (YYTHD->mem_root) Item_cond_and($1, $3);
+ }
}
- ;
-
-bool_and_expr:
- /* empty */
- | bool_and_expr and bool_factor
- { Select->expr_list.head()->push_back($3); }
- ;
-
-bool_factor:
- NOT_SYM bool_factor { $$= negate_expression(YYTHD, $2); }
- | bool_test ;
-
-bool_test:
- bool_pri IS TRUE_SYM
+ | NOT_SYM expr %prec NOT_SYM
+ { $$= negate_expression(YYTHD, $2); }
+ | bool_pri IS TRUE_SYM %prec IS
{ $$= new (YYTHD->mem_root) Item_func_istrue($1); }
- | bool_pri IS not TRUE_SYM
+ | bool_pri IS not TRUE_SYM %prec IS
{ $$= new (YYTHD->mem_root) Item_func_isnottrue($1); }
- | bool_pri IS FALSE_SYM
+ | bool_pri IS FALSE_SYM %prec IS
{ $$= new (YYTHD->mem_root) Item_func_isfalse($1); }
- | bool_pri IS not FALSE_SYM
+ | bool_pri IS not FALSE_SYM %prec IS
{ $$= new (YYTHD->mem_root) Item_func_isnotfalse($1); }
- | bool_pri IS UNKNOWN_SYM { $$= new Item_func_isnull($1); }
- | bool_pri IS not UNKNOWN_SYM { $$= new Item_func_isnotnull($1); }
+ | bool_pri IS UNKNOWN_SYM %prec IS
+ { $$= new Item_func_isnull($1); }
+ | bool_pri IS not UNKNOWN_SYM %prec IS
+ { $$= new Item_func_isnotnull($1); }
| bool_pri
;
bool_pri:
- bool_pri IS NULL_SYM { $$= new Item_func_isnull($1); }
- | bool_pri IS not NULL_SYM { $$= new Item_func_isnotnull($1); }
- | bool_pri EQUAL_SYM predicate { $$= new Item_func_equal($1,$3); }
- | bool_pri comp_op predicate %prec EQ
- { $$= (*$2)(0)->create($1,$3); }
- | bool_pri comp_op all_or_any '(' subselect ')' %prec EQ
- { $$= all_any_subquery_creator($1, $2, $3, $5); }
- | predicate ;
+ bool_pri IS NULL_SYM %prec IS
+ { $$= new Item_func_isnull($1); }
+ | bool_pri IS not NULL_SYM %prec IS
+ { $$= new Item_func_isnotnull($1); }
+ | bool_pri EQUAL_SYM predicate %prec EQUAL_SYM
+ { $$= new Item_func_equal($1,$3); }
+ | bool_pri comp_op predicate %prec EQ
+ { $$= (*$2)(0)->create($1,$3); }
+ | bool_pri comp_op all_or_any '(' subselect ')' %prec EQ
+ { $$= all_any_subquery_creator($1, $2, $3, $5); }
+ | predicate ;
+ ;
predicate:
- bit_expr IN_SYM '(' subselect ')'
+ bit_expr IN_SYM '(' subselect ')'
{
$$= new (YYTHD->mem_root) Item_in_subselect($1, $4);
}
- | bit_expr not IN_SYM '(' subselect ')'
+ | bit_expr not IN_SYM '(' subselect ')'
{
THD *thd= YYTHD;
Item *item= new (thd->mem_root) Item_in_subselect($1, $5);
@@ -6370,148 +6698,165 @@ predicate:
{
$$= handle_sql2003_note184_exception(YYTHD, $1, true, $4);
}
- | bit_expr IN_SYM '(' expr ',' expr_list ')'
- {
- $6->push_front($4);
- $6->push_front($1);
+ | bit_expr IN_SYM '(' expr ',' expr_list ')'
+ {
+ $6->push_front($4);
+ $6->push_front($1);
$$= new (YYTHD->mem_root) Item_func_in(*$6);
}
| bit_expr not IN_SYM '(' expr ')'
{
$$= handle_sql2003_note184_exception(YYTHD, $1, false, $5);
}
- | bit_expr not IN_SYM '(' expr ',' expr_list ')'
+ | bit_expr not IN_SYM '(' expr ',' expr_list ')'
{
- $7->push_front($5);
- $7->push_front($1);
+ $7->push_front($5);
+ $7->push_front($1);
Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*$7);
- item->negate();
- $$= item;
+ item->negate();
+ $$= item;
}
- | bit_expr BETWEEN_SYM bit_expr AND_SYM predicate
- { $$= new Item_func_between($1,$3,$5); }
- | bit_expr not BETWEEN_SYM bit_expr AND_SYM predicate
- {
- Item_func_between *item= new Item_func_between($1,$4,$6);
- item->negate();
- $$= item;
- }
- | bit_expr SOUNDS_SYM LIKE bit_expr
- { $$= new Item_func_eq(new Item_func_soundex($1),
- new Item_func_soundex($4)); }
- | bit_expr LIKE simple_expr opt_escape
+ | bit_expr BETWEEN_SYM bit_expr AND_SYM predicate
+ { $$= new Item_func_between($1,$3,$5); }
+ | bit_expr not BETWEEN_SYM bit_expr AND_SYM predicate
+ {
+ Item_func_between *item= new Item_func_between($1,$4,$6);
+ item->negate();
+ $$= item;
+ }
+ | bit_expr SOUNDS_SYM LIKE bit_expr
+ {
+ $$= new Item_func_eq(new Item_func_soundex($1),
+ new Item_func_soundex($4));
+ }
+ | bit_expr LIKE simple_expr opt_escape
{ $$= new Item_func_like($1,$3,$4,Lex->escape_used); }
- | bit_expr not LIKE simple_expr opt_escape
+ | bit_expr not LIKE simple_expr opt_escape
{ $$= new Item_func_not(new Item_func_like($1,$4,$5, Lex->escape_used)); }
- | bit_expr REGEXP bit_expr { $$= new Item_func_regex($1,$3); }
- | bit_expr not REGEXP bit_expr
+ | bit_expr REGEXP bit_expr { $$= new Item_func_regex($1,$3); }
+ | bit_expr not REGEXP bit_expr
{ $$= negate_expression(YYTHD, new Item_func_regex($1,$4)); }
- | bit_expr ;
+ | bit_expr
+ ;
bit_expr:
- bit_expr '|' bit_term { $$= new Item_func_bit_or($1,$3); }
- | bit_term ;
-
-bit_term:
- bit_term '&' bit_factor { $$= new Item_func_bit_and($1,$3); }
- | bit_factor ;
-
-bit_factor:
- bit_factor SHIFT_LEFT value_expr
- { $$= new Item_func_shift_left($1,$3); }
- | bit_factor SHIFT_RIGHT value_expr
- { $$= new Item_func_shift_right($1,$3); }
- | value_expr ;
-
-value_expr:
- value_expr '+' term { $$= new Item_func_plus($1,$3); }
- | value_expr '-' term { $$= new Item_func_minus($1,$3); }
- | value_expr '+' interval_expr interval
- { $$= new Item_date_add_interval($1,$3,$4,0); }
- | value_expr '-' interval_expr interval
- { $$= new Item_date_add_interval($1,$3,$4,1); }
- | term ;
-
-term:
- term '*' factor { $$= new Item_func_mul($1,$3); }
- | term '/' factor { $$= new Item_func_div($1,$3); }
- | term '%' factor { $$= new Item_func_mod($1,$3); }
- | term DIV_SYM factor { $$= new Item_func_int_div($1,$3); }
- | term MOD_SYM factor { $$= new Item_func_mod($1,$3); }
- | factor ;
-
-factor:
- factor '^' simple_expr { $$= new Item_func_bit_xor($1,$3); }
- | simple_expr ;
-
-or: OR_SYM | OR2_SYM;
-and: AND_SYM | AND_AND_SYM;
-not: NOT_SYM | NOT2_SYM;
-not2: '!' | NOT2_SYM;
-
-comp_op: EQ { $$ = &comp_eq_creator; }
- | GE { $$ = &comp_ge_creator; }
- | GT_SYM { $$ = &comp_gt_creator; }
- | LE { $$ = &comp_le_creator; }
- | LT { $$ = &comp_lt_creator; }
- | NE { $$ = &comp_ne_creator; }
- ;
-
-all_or_any: ALL { $$ = 1; }
- | ANY_SYM { $$ = 0; }
+ bit_expr '|' bit_expr %prec '|'
+ { $$= new Item_func_bit_or($1,$3); }
+ | bit_expr '&' bit_expr %prec '&'
+ { $$= new Item_func_bit_and($1,$3); }
+ | bit_expr SHIFT_LEFT bit_expr %prec SHIFT_LEFT
+ { $$= new Item_func_shift_left($1,$3); }
+ | bit_expr SHIFT_RIGHT bit_expr %prec SHIFT_RIGHT
+ { $$= new Item_func_shift_right($1,$3); }
+ | bit_expr '+' bit_expr %prec '+'
+ { $$= new Item_func_plus($1,$3); }
+ | bit_expr '-' bit_expr %prec '-'
+ { $$= new Item_func_minus($1,$3); }
+ | bit_expr '+' interval_expr interval %prec '+'
+ { $$= new Item_date_add_interval($1,$3,$4,0); }
+ | bit_expr '-' interval_expr interval %prec '-'
+ { $$= new Item_date_add_interval($1,$3,$4,1); }
+ | bit_expr '*' bit_expr %prec '*'
+ { $$= new Item_func_mul($1,$3); }
+ | bit_expr '/' bit_expr %prec '/'
+ { $$= new Item_func_div($1,$3); }
+ | bit_expr '%' bit_expr %prec '%'
+ { $$= new Item_func_mod($1,$3); }
+ | bit_expr DIV_SYM bit_expr %prec DIV_SYM
+ { $$= new Item_func_int_div($1,$3); }
+ | bit_expr MOD_SYM bit_expr %prec MOD_SYM
+ { $$= new Item_func_mod($1,$3); }
+ | bit_expr '^' bit_expr
+ { $$= new Item_func_bit_xor($1,$3); }
+ | simple_expr
+ ;
+
+or:
+ OR_SYM
+ | OR2_SYM
+ ;
+
+and:
+ AND_SYM
+ | AND_AND_SYM
+ ;
+
+not:
+ NOT_SYM
+ | NOT2_SYM
+ ;
+
+not2:
+ '!'
+ | NOT2_SYM
+ ;
+
+comp_op:
+ EQ { $$ = &comp_eq_creator; }
+ | GE { $$ = &comp_ge_creator; }
+ | GT_SYM { $$ = &comp_gt_creator; }
+ | LE { $$ = &comp_le_creator; }
+ | LT { $$ = &comp_lt_creator; }
+ | NE { $$ = &comp_ne_creator; }
+ ;
+
+all_or_any:
+ ALL { $$ = 1; }
+ | ANY_SYM { $$ = 0; }
;
interval_expr:
- INTERVAL_SYM expr { $$=$2; }
+ INTERVAL_SYM expr %prec INTERVAL_SYM
+ { $$=$2; }
;
simple_expr:
- simple_ident
+ simple_ident
| function_call_keyword
| function_call_nonkeyword
| function_call_generic
| function_call_conflict
- | simple_expr COLLATE_SYM ident_or_text %prec NEG
- {
+ | simple_expr COLLATE_SYM ident_or_text %prec NEG
+ {
THD *thd= YYTHD;
Item *i1= new (thd->mem_root) Item_string($3.str,
$3.length,
thd->charset());
- $$= new (thd->mem_root) Item_func_set_collation($1, i1);
- }
- | literal
- | param_marker
- | variable
- | sum_expr
- | simple_expr OR_OR_SYM simple_expr
- { $$= new (YYTHD->mem_root) Item_func_concat($1, $3); }
- | '+' simple_expr %prec NEG { $$= $2; }
- | '-' simple_expr %prec NEG
+ $$= new (thd->mem_root) Item_func_set_collation($1, i1);
+ }
+ | literal
+ | param_marker
+ | variable
+ | sum_expr
+ | simple_expr OR_OR_SYM simple_expr
+ { $$= new (YYTHD->mem_root) Item_func_concat($1, $3); }
+ | '+' simple_expr %prec NEG { $$= $2; }
+ | '-' simple_expr %prec NEG
{ $$= new (YYTHD->mem_root) Item_func_neg($2); }
- | '~' simple_expr %prec NEG
+ | '~' simple_expr %prec NEG
{ $$= new (YYTHD->mem_root) Item_func_bit_neg($2); }
- | not2 simple_expr %prec NEG
+ | not2 simple_expr %prec NEG
{ $$= negate_expression(YYTHD, $2); }
- | '(' subselect ')'
+ | '(' subselect ')'
{
$$= new (YYTHD->mem_root) Item_singlerow_subselect($2);
}
- | '(' expr ')' { $$= $2; }
- | '(' expr ',' expr_list ')'
- {
- $4->push_front($2);
- $$= new (YYTHD->mem_root) Item_row(*$4);
- }
- | ROW_SYM '(' expr ',' expr_list ')'
- {
- $5->push_front($3);
- $$= new (YYTHD->mem_root) Item_row(*$5);
- }
- | EXISTS '(' subselect ')'
+ | '(' expr ')' { $$= $2; }
+ | '(' expr ',' expr_list ')'
+ {
+ $4->push_front($2);
+ $$= new (YYTHD->mem_root) Item_row(*$4);
+ }
+ | ROW_SYM '(' expr ',' expr_list ')'
+ {
+ $5->push_front($3);
+ $$= new (YYTHD->mem_root) Item_row(*$5);
+ }
+ | EXISTS '(' subselect ')'
{
$$= new (YYTHD->mem_root) Item_exists_subselect($3);
}
- | '{' ident expr '}' { $$= $3; }
+ | '{' ident expr '}' { $$= $3; }
| MATCH ident_list_arg AGAINST '(' bit_expr fulltext_options ')'
{
$2->push_front($5);
@@ -6519,50 +6864,52 @@ simple_expr:
Select->add_ftfunc_to_list(i1);
$$= i1;
}
- | BINARY simple_expr %prec NEG
- {
+ | BINARY simple_expr %prec NEG
+ {
$$= create_func_cast(YYTHD, $2, ITEM_CAST_CHAR, NULL, NULL,
&my_charset_bin);
- }
- | CAST_SYM '(' expr AS cast_type ')'
- {
+ }
+ | CAST_SYM '(' expr AS cast_type ')'
+ {
LEX *lex= Lex;
- $$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec,
+ $$= create_func_cast(YYTHD, $3, $5, lex->length, lex->dec,
lex->charset);
if (!$$)
MYSQL_YYABORT;
- }
- | CASE_SYM opt_expr when_list opt_else END
- { $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); }
- | CONVERT_SYM '(' expr ',' cast_type ')'
- {
- $$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec,
+ }
+ | CASE_SYM opt_expr when_list opt_else END
+ { $$= new (YYTHD->mem_root) Item_func_case(* $3, $2, $4 ); }
+ | CONVERT_SYM '(' expr ',' cast_type ')'
+ {
+ $$= create_func_cast(YYTHD, $3, $5, Lex->length, Lex->dec,
Lex->charset);
if (!$$)
MYSQL_YYABORT;
- }
- | CONVERT_SYM '(' expr USING charset_name ')'
- { $$= new (YYTHD->mem_root) Item_func_conv_charset($3,$5); }
- | DEFAULT '(' simple_ident ')'
- {
- if ($3->is_splocal())
- {
- Item_splocal *il= static_cast<Item_splocal *>($3);
-
- my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
- MYSQL_YYABORT;
- }
- $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
+ }
+ | CONVERT_SYM '(' expr USING charset_name ')'
+ { $$= new (YYTHD->mem_root) Item_func_conv_charset($3,$5); }
+ | DEFAULT '(' simple_ident ')'
+ {
+ if ($3->is_splocal())
+ {
+ Item_splocal *il= static_cast<Item_splocal *>($3);
+
+ my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
+ MYSQL_YYABORT;
+ }
+ $$= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
$3);
- }
- | VALUES '(' simple_ident_nospvar ')'
- { $$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
- $3); }
- | interval_expr interval '+' expr
- /* we cannot put interval before - */
- { $$= new (YYTHD->mem_root) Item_date_add_interval($4,$1,$2,0); }
- | interval_expr
- {
+ }
+ | VALUES '(' simple_ident_nospvar ')'
+ {
+ $$= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
+ $3);
+ }
+ | interval_expr interval '+' expr
+ /* we cannot put interval before - */
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($4,$1,$2,0); }
+ | interval_expr
+ {
if ($1->type() != Item::ROW_ITEM)
{
my_parse_error(ER(ER_SYNTAX_ERROR));
@@ -6579,62 +6926,62 @@ simple_expr:
There is no potential for conflicts
*/
function_call_keyword:
- CHAR_SYM '(' expr_list ')'
- { $$= new (YYTHD->mem_root) Item_func_char(*$3); }
- | CHAR_SYM '(' expr_list USING charset_name ')'
- { $$= new (YYTHD->mem_root) Item_func_char(*$3, $5); }
- | CURRENT_USER optional_braces
+ CHAR_SYM '(' expr_list ')'
+ { $$= new (YYTHD->mem_root) Item_func_char(*$3); }
+ | CHAR_SYM '(' expr_list USING charset_name ')'
+ { $$= new (YYTHD->mem_root) Item_func_char(*$3, $5); }
+ | CURRENT_USER optional_braces
{
$$= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
Lex->safe_to_cache_query= 0;
}
- | DATE_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_date_typecast($3); }
- | DAY_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); }
- | HOUR_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_hour($3); }
- | INSERT '(' expr ',' expr ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); }
- | LEFT '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_left($3,$5); }
- | MINUTE_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_minute($3); }
- | MONTH_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_month($3); }
- | RIGHT '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_right($3,$5); }
- | SECOND_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_second($3); }
- | TIME_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_time_typecast($3); }
- | TIMESTAMP '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_datetime_typecast($3); }
- | TIMESTAMP '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); }
- | TRIM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_trim($3); }
- | TRIM '(' LEADING expr FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); }
- | TRIM '(' TRAILING expr FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); }
- | TRIM '(' BOTH expr FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_trim($6,$4); }
- | TRIM '(' LEADING FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_ltrim($5); }
- | TRIM '(' TRAILING FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_rtrim($5); }
- | TRIM '(' BOTH FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_trim($5); }
- | TRIM '(' expr FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_trim($5,$3); }
- | USER '(' ')'
- {
+ | DATE_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_date_typecast($3); }
+ | DAY_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_dayofmonth($3); }
+ | HOUR_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_hour($3); }
+ | INSERT '(' expr ',' expr ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_insert($3,$5,$7,$9); }
+ | LEFT '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_left($3,$5); }
+ | MINUTE_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_minute($3); }
+ | MONTH_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_month($3); }
+ | RIGHT '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_right($3,$5); }
+ | SECOND_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_second($3); }
+ | TIME_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_time_typecast($3); }
+ | TIMESTAMP '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_datetime_typecast($3); }
+ | TIMESTAMP '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_add_time($3, $5, 1, 0); }
+ | TRIM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_trim($3); }
+ | TRIM '(' LEADING expr FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_ltrim($6,$4); }
+ | TRIM '(' TRAILING expr FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_rtrim($6,$4); }
+ | TRIM '(' BOTH expr FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_trim($6,$4); }
+ | TRIM '(' LEADING FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_ltrim($5); }
+ | TRIM '(' TRAILING FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_rtrim($5); }
+ | TRIM '(' BOTH FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_trim($5); }
+ | TRIM '(' expr FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_trim($5,$3); }
+ | USER '(' ')'
+ {
$$= new (YYTHD->mem_root) Item_func_user();
Lex->safe_to_cache_query=0;
}
- | YEAR_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_year($3); }
+ | YEAR_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_year($3); }
;
/*
@@ -6650,64 +6997,64 @@ function_call_keyword:
discouraged.
*/
function_call_nonkeyword:
- ADDDATE_SYM '(' expr ',' expr ')'
- {
+ ADDDATE_SYM '(' expr ',' expr ')'
+ {
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
INTERVAL_DAY, 0);
}
- | ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
- { $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); }
- | CURDATE optional_braces
- {
+ | ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 0); }
+ | CURDATE optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_curdate_local();
Lex->safe_to_cache_query=0;
}
- | CURTIME optional_braces
- {
+ | CURTIME optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_curtime_local();
Lex->safe_to_cache_query=0;
}
- | CURTIME '(' expr ')'
- {
- $$= new (YYTHD->mem_root) Item_func_curtime_local($3);
- Lex->safe_to_cache_query=0;
- }
- | DATE_ADD_INTERVAL '(' expr ',' interval_expr interval ')'
- { $$= new (YYTHD->mem_root) Item_date_add_interval($3,$5,$6,0); }
- | DATE_SUB_INTERVAL '(' expr ',' interval_expr interval ')'
- { $$= new (YYTHD->mem_root) Item_date_add_interval($3,$5,$6,1); }
- | EXTRACT_SYM '(' interval FROM expr ')'
- { $$=new (YYTHD->mem_root) Item_extract( $3, $5); }
- | GET_FORMAT '(' date_time_type ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); }
- | NOW_SYM optional_braces
- {
+ | CURTIME '(' expr ')'
+ {
+ $$= new (YYTHD->mem_root) Item_func_curtime_local($3);
+ Lex->safe_to_cache_query=0;
+ }
+ | DATE_ADD_INTERVAL '(' expr ',' interval_expr interval ')'
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($3,$5,$6,0); }
+ | DATE_SUB_INTERVAL '(' expr ',' interval_expr interval ')'
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($3,$5,$6,1); }
+ | EXTRACT_SYM '(' interval FROM expr ')'
+ { $$=new (YYTHD->mem_root) Item_extract( $3, $5); }
+ | GET_FORMAT '(' date_time_type ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_get_format($3, $5); }
+ | NOW_SYM optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_now_local();
Lex->safe_to_cache_query=0;
}
- | NOW_SYM '(' expr ')'
- {
+ | NOW_SYM '(' expr ')'
+ {
$$= new (YYTHD->mem_root) Item_func_now_local($3);
Lex->safe_to_cache_query=0;
}
- | POSITION_SYM '(' bit_expr IN_SYM expr ')'
- { $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); }
- | SUBDATE_SYM '(' expr ',' expr ')'
- {
+ | POSITION_SYM '(' bit_expr IN_SYM expr ')'
+ { $$ = new (YYTHD->mem_root) Item_func_locate($5,$3); }
+ | SUBDATE_SYM '(' expr ',' expr ')'
+ {
$$= new (YYTHD->mem_root) Item_date_add_interval($3, $5,
INTERVAL_DAY, 1);
}
- | SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
- { $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); }
- | SUBSTRING '(' expr ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
- | SUBSTRING '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
- | SUBSTRING '(' expr FROM expr FOR_SYM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
- | SUBSTRING '(' expr FROM expr ')'
- { $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
- | SYSDATE optional_braces
+ | SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')'
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($3, $6, $7, 1); }
+ | SUBSTRING '(' expr ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
+ | SUBSTRING '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
+ | SUBSTRING '(' expr FROM expr FOR_SYM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_substr($3,$5,$7); }
+ | SUBSTRING '(' expr FROM expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_substr($3,$5); }
+ | SYSDATE optional_braces
{
if (global_system_variables.sysdate_is_now == 0)
$$= new (YYTHD->mem_root) Item_func_sysdate_local();
@@ -6715,7 +7062,7 @@ function_call_nonkeyword:
$$= new (YYTHD->mem_root) Item_func_now_local();
Lex->safe_to_cache_query=0;
}
- | SYSDATE '(' expr ')'
+ | SYSDATE '(' expr ')'
{
if (global_system_variables.sysdate_is_now == 0)
$$= new (YYTHD->mem_root) Item_func_sysdate_local($3);
@@ -6723,22 +7070,22 @@ function_call_nonkeyword:
$$= new (YYTHD->mem_root) Item_func_now_local($3);
Lex->safe_to_cache_query=0;
}
- | TIMESTAMP_ADD '(' interval_time_st ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); }
- | TIMESTAMP_DIFF '(' interval_time_st ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); }
- | UTC_DATE_SYM optional_braces
- {
+ | TIMESTAMP_ADD '(' interval_time_st ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_date_add_interval($7,$5,$3,0); }
+ | TIMESTAMP_DIFF '(' interval_time_st ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_timestamp_diff($5,$7,$3); }
+ | UTC_DATE_SYM optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_curdate_utc();
Lex->safe_to_cache_query=0;
}
- | UTC_TIME_SYM optional_braces
- {
+ | UTC_TIME_SYM optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_curtime_utc();
Lex->safe_to_cache_query=0;
}
- | UTC_TIMESTAMP_SYM optional_braces
- {
+ | UTC_TIMESTAMP_SYM optional_braces
+ {
$$= new (YYTHD->mem_root) Item_func_now_utc();
Lex->safe_to_cache_query=0;
}
@@ -6750,29 +7097,29 @@ function_call_nonkeyword:
a dedicated rule is needed here.
*/
function_call_conflict:
- ASCII_SYM '(' expr ')'
+ ASCII_SYM '(' expr ')'
{ $$= new (YYTHD->mem_root) Item_func_ascii($3); }
- | CHARSET '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_charset($3); }
- | COALESCE '(' expr_list ')'
- { $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); }
- | COLLATION_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_collation($3); }
- | DATABASE '(' ')'
- {
- $$= new (YYTHD->mem_root) Item_func_database();
+ | CHARSET '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_charset($3); }
+ | COALESCE '(' expr_list ')'
+ { $$= new (YYTHD->mem_root) Item_func_coalesce(* $3); }
+ | COLLATION_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_collation($3); }
+ | DATABASE '(' ')'
+ {
+ $$= new (YYTHD->mem_root) Item_func_database();
Lex->safe_to_cache_query=0;
- }
- | IF '(' expr ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); }
- | MICROSECOND_SYM '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_microsecond($3); }
- | MOD_SYM '(' expr ',' expr ')'
- { $$ = new (YYTHD->mem_root) Item_func_mod( $3, $5); }
- | OLD_PASSWORD '(' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_old_password($3); }
- | PASSWORD '(' expr ')'
- {
+ }
+ | IF '(' expr ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_if($3,$5,$7); }
+ | MICROSECOND_SYM '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_microsecond($3); }
+ | MOD_SYM '(' expr ',' expr ')'
+ { $$ = new (YYTHD->mem_root) Item_func_mod( $3, $5); }
+ | OLD_PASSWORD '(' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_old_password($3); }
+ | PASSWORD '(' expr ')'
+ {
THD *thd= YYTHD;
Item* i1;
if (thd->variables.old_passwords)
@@ -6780,17 +7127,17 @@ function_call_conflict:
else
i1= new (thd->mem_root) Item_func_password($3);
$$= i1;
- }
- | QUARTER_SYM '(' expr ')'
- { $$ = new (YYTHD->mem_root) Item_func_quarter($3); }
- | REPEAT_SYM '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); }
- | REPLACE '(' expr ',' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); }
- | TRUNCATE_SYM '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); }
- | WEEK_SYM '(' expr ')'
- {
+ }
+ | QUARTER_SYM '(' expr ')'
+ { $$ = new (YYTHD->mem_root) Item_func_quarter($3); }
+ | REPEAT_SYM '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_repeat($3,$5); }
+ | REPLACE '(' expr ',' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_replace($3,$5,$7); }
+ | TRUNCATE_SYM '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_round($3,$5,1); }
+ | WEEK_SYM '(' expr ')'
+ {
THD *thd= YYTHD;
Item *i1= new (thd->mem_root) Item_int((char*) "0",
thd->variables.default_week_format,
@@ -6798,8 +7145,8 @@ function_call_conflict:
$$= new (thd->mem_root) Item_func_week($3, i1);
}
- | WEEK_SYM '(' expr ',' expr ')'
- { $$= new (YYTHD->mem_root) Item_func_week($3,$5); }
+ | WEEK_SYM '(' expr ',' expr ')'
+ { $$= new (YYTHD->mem_root) Item_func_week($3,$5); }
| geometry_function
{
#ifdef HAVE_SPATIAL
@@ -6813,54 +7160,54 @@ function_call_conflict:
;
geometry_function:
- CONTAINS_SYM '(' expr ',' expr ')'
- {
+ CONTAINS_SYM '(' expr ',' expr ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_rel($3, $5,
Item_func::SP_CONTAINS_FUNC));
}
- | GEOMETRYCOLLECTION '(' expr_list ')'
- {
+ | GEOMETRYCOLLECTION '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
Geometry::wkb_geometrycollection,
Geometry::wkb_point));
}
- | LINESTRING '(' expr_list ')'
- {
+ | LINESTRING '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
Geometry::wkb_linestring,
Geometry::wkb_point));
}
- | MULTILINESTRING '(' expr_list ')'
- {
+ | MULTILINESTRING '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
Geometry::wkb_multilinestring,
Geometry::wkb_linestring));
}
- | MULTIPOINT '(' expr_list ')'
- {
+ | MULTIPOINT '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
Geometry::wkb_multipoint,
Geometry::wkb_point));
}
- | MULTIPOLYGON '(' expr_list ')'
- {
+ | MULTIPOLYGON '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
Geometry::wkb_multipolygon,
Geometry::wkb_polygon));
}
- | POINT_SYM '(' expr ',' expr ')'
- { $$= GEOM_NEW(YYTHD, Item_func_point($3,$5)); }
- | POLYGON '(' expr_list ')'
- {
+ | POINT_SYM '(' expr ',' expr ')'
+ { $$= GEOM_NEW(YYTHD, Item_func_point($3,$5)); }
+ | POLYGON '(' expr_list ')'
+ {
$$= GEOM_NEW(YYTHD,
Item_func_spatial_collection(* $3,
- Geometry::wkb_polygon,
+ Geometry::wkb_polygon,
Geometry::wkb_linestring));
}
;
@@ -6875,103 +7222,103 @@ geometry_function:
in sql/item_create.cc
*/
function_call_generic:
- IDENT_sys '('
- {
-#ifdef HAVE_DLOPEN
- udf_func *udf= 0;
- LEX *lex= Lex;
- if (using_udf_functions &&
- (udf= find_udf($1.str, $1.length)) &&
- udf->type == UDFTYPE_AGGREGATE)
+ IDENT_sys '('
{
- if (lex->current_select->inc_in_sum_expr())
+#ifdef HAVE_DLOPEN
+ udf_func *udf= 0;
+ LEX *lex= Lex;
+ if (using_udf_functions &&
+ (udf= find_udf($1.str, $1.length)) &&
+ udf->type == UDFTYPE_AGGREGATE)
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
+ if (lex->current_select->inc_in_sum_expr())
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
}
- }
- /* Temporary placing the result of find_udf in $3 */
- $<udf>$= udf;
+ /* Temporary placing the result of find_udf in $3 */
+ $<udf>$= udf;
#endif
- }
- udf_expr_list ')'
- {
- THD *thd= YYTHD;
- Create_func *builder;
- Item *item= NULL;
-
- /*
- Implementation note:
- names are resolved with the following order:
- - MySQL native functions,
- - User Defined Functions,
- - Stored Functions (assuming the current <use> database)
-
- This will be revised with WL#2128 (SQL PATH)
- */
- builder= find_native_function_builder(thd, $1);
- if (builder)
- {
- item= builder->create(thd, $1, $4);
}
- else
+ opt_udf_expr_list ')'
{
-#ifdef HAVE_DLOPEN
- /* Retrieving the result of find_udf */
- udf_func *udf= $<udf>3;
+ THD *thd= YYTHD;
+ Create_func *builder;
+ Item *item= NULL;
- if (udf)
- {
- if (udf->type == UDFTYPE_AGGREGATE)
- {
- Select->in_sum_expr--;
- }
+ /*
+ Implementation note:
+ names are resolved with the following order:
+ - MySQL native functions,
+ - User Defined Functions,
+ - Stored Functions (assuming the current <use> database)
- item= Create_udf_func::s_singleton.create(thd, udf, $4);
+ This will be revised with WL#2128 (SQL PATH)
+ */
+ builder= find_native_function_builder(thd, $1);
+ if (builder)
+ {
+ item= builder->create(thd, $1, $4);
}
else
+ {
+#ifdef HAVE_DLOPEN
+ /* Retrieving the result of find_udf */
+ udf_func *udf= $<udf>3;
+
+ if (udf)
+ {
+ if (udf->type == UDFTYPE_AGGREGATE)
+ {
+ Select->in_sum_expr--;
+ }
+
+ item= Create_udf_func::s_singleton.create(thd, udf, $4);
+ }
+ else
#endif
+ {
+ builder= find_qualified_function_builder(thd);
+ DBUG_ASSERT(builder);
+ item= builder->create(thd, $1, $4);
+ }
+ }
+
+ if (! ($$= item))
{
- builder= find_qualified_function_builder(thd);
- DBUG_ASSERT(builder);
- item= builder->create(thd, $1, $4);
+ MYSQL_YYABORT;
}
}
-
- if (! ($$= item))
+ | ident '.' ident '(' opt_expr_list ')'
{
- MYSQL_YYABORT;
- }
- }
- | ident '.' ident '(' opt_expr_list ')'
- {
- THD *thd= YYTHD;
- Create_qfunc *builder;
- Item *item= NULL;
+ THD *thd= YYTHD;
+ Create_qfunc *builder;
+ Item *item= NULL;
- /*
- The following in practice calls:
- <code>Create_sp_func::create()</code>
- and builds a stored function.
-
- However, it's important to maintain the interface between the
- parser and the implementation in item_create.cc clean,
- since this will change with WL#2128 (SQL PATH):
- - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
- function version(),
- - MySQL.version() is the SQL 2003 syntax for the native function
- version() (a vendor can specify any schema).
- */
+ /*
+ The following in practice calls:
+ <code>Create_sp_func::create()</code>
+ and builds a stored function.
+
+ However, it's important to maintain the interface between the
+ parser and the implementation in item_create.cc clean,
+ since this will change with WL#2128 (SQL PATH):
+ - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
+ function version(),
+ - MySQL.version() is the SQL 2003 syntax for the native function
+ version() (a vendor can specify any schema).
+ */
- builder= find_qualified_function_builder(thd);
- DBUG_ASSERT(builder);
- item= builder->create(thd, $1, $3, true, $5);
+ builder= find_qualified_function_builder(thd);
+ DBUG_ASSERT(builder);
+ item= builder->create(thd, $1, $3, true, $5);
- if (! ($$= item))
- {
- MYSQL_YYABORT;
+ if (! ($$= item))
+ {
+ MYSQL_YYABORT;
+ }
}
- }
;
fulltext_options:
@@ -6982,115 +7329,112 @@ fulltext_options:
;
opt_natural_language_mode:
- /* nothing */ { $$= FT_NL; }
+ /* nothing */ { $$= FT_NL; }
| IN_SYM NATURAL LANGUAGE_SYM MODE_SYM { $$= FT_NL; }
;
opt_query_expansion:
- /* nothing */ { $$= 0; }
+ /* nothing */ { $$= 0; }
| WITH QUERY_SYM EXPANSION_SYM { $$= FT_EXPAND; }
;
+opt_udf_expr_list:
+ /* empty */ { $$= NULL; }
+ | udf_expr_list { $$= $1; }
+ ;
+
udf_expr_list:
- /* empty */ { $$= NULL; }
- | udf_expr_list2 { $$= $1;}
- ;
-
-udf_expr_list2:
- { Select->expr_list.push_front(new List<Item>); }
- udf_expr_list3
- { $$= Select->expr_list.pop(); }
- ;
-
-udf_expr_list3:
- udf_expr
- {
- Select->expr_list.head()->push_back($1);
- }
- | udf_expr_list3 ',' udf_expr
- {
- Select->expr_list.head()->push_back($3);
- }
- ;
+ udf_expr
+ {
+ $$= new (YYTHD->mem_root) List<Item>;
+ $$->push_back($1);
+ }
+ | udf_expr_list ',' udf_expr
+ {
+ $1->push_back($3);
+ $$= $1;
+ }
+ ;
udf_expr:
- remember_name expr remember_end select_alias
- {
- /*
- Use Item::name as a storage for the attribute value of user
- defined function argument. It is safe to use Item::name
- because the syntax will not allow having an explicit name here.
- See WL#1017 re. udf attributes.
- */
- if ($4.str)
+ remember_name expr remember_end select_alias
{
- $2->is_autogenerated_name= FALSE;
- $2->set_name($4.str, $4.length, system_charset_info);
+ /*
+ Use Item::name as a storage for the attribute value of user
+ defined function argument. It is safe to use Item::name
+ because the syntax will not allow having an explicit name here.
+ See WL#1017 re. udf attributes.
+ */
+ if ($4.str)
+ {
+ $2->is_autogenerated_name= FALSE;
+ $2->set_name($4.str, $4.length, system_charset_info);
+ }
+ else
+ $2->set_name($1, (uint) ($3 - $1), YYTHD->charset());
+ $$= $2;
}
- else
- $2->set_name($1, (uint) ($3 - $1), YYTHD->charset());
- $$= $2;
- }
- ;
+ ;
sum_expr:
- AVG_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_avg($3); }
- | AVG_SYM '(' DISTINCT in_sum_expr ')'
- { $$=new Item_sum_avg_distinct($4); }
- | BIT_AND '(' in_sum_expr ')'
- { $$=new Item_sum_and($3); }
- | BIT_OR '(' in_sum_expr ')'
- { $$=new Item_sum_or($3); }
- | BIT_XOR '(' in_sum_expr ')'
- { $$=new Item_sum_xor($3); }
- | COUNT_SYM '(' opt_all '*' ')'
- { $$=new Item_sum_count(new Item_int((int32) 0L,1)); }
- | COUNT_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_count($3); }
- | COUNT_SYM '(' DISTINCT
- { Select->in_sum_expr++; }
- expr_list
- { Select->in_sum_expr--; }
- ')'
- { $$=new Item_sum_count_distinct(* $5); }
- | MIN_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_min($3); }
-/*
- According to ANSI SQL, DISTINCT is allowed and has
- no sense inside MIN and MAX grouping functions; so MIN|MAX(DISTINCT ...)
- is processed like an ordinary MIN | MAX()
- */
- | MIN_SYM '(' DISTINCT in_sum_expr ')'
- { $$=new Item_sum_min($4); }
- | MAX_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_max($3); }
- | MAX_SYM '(' DISTINCT in_sum_expr ')'
- { $$=new Item_sum_max($4); }
- | STD_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_std($3, 0); }
- | VARIANCE_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_variance($3, 0); }
- | STDDEV_SAMP_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_std($3, 1); }
- | VAR_SAMP_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_variance($3, 1); }
- | SUM_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_sum($3); }
- | SUM_SYM '(' DISTINCT in_sum_expr ')'
- { $$=new Item_sum_sum_distinct($4); }
- | GROUP_CONCAT_SYM '(' opt_distinct
- { Select->in_sum_expr++; }
- expr_list opt_gorder_clause
- opt_gconcat_separator
- ')'
- {
+ AVG_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_avg($3); }
+ | AVG_SYM '(' DISTINCT in_sum_expr ')'
+ { $$=new Item_sum_avg_distinct($4); }
+ | BIT_AND '(' in_sum_expr ')'
+ { $$=new Item_sum_and($3); }
+ | BIT_OR '(' in_sum_expr ')'
+ { $$=new Item_sum_or($3); }
+ | BIT_XOR '(' in_sum_expr ')'
+ { $$=new Item_sum_xor($3); }
+ | COUNT_SYM '(' opt_all '*' ')'
+ { $$=new Item_sum_count(new Item_int((int32) 0L,1)); }
+ | COUNT_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_count($3); }
+ | COUNT_SYM '(' DISTINCT
+ { Select->in_sum_expr++; }
+ expr_list
+ { Select->in_sum_expr--; }
+ ')'
+ { $$=new Item_sum_count_distinct(* $5); }
+ | MIN_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_min($3); }
+ /*
+ According to ANSI SQL, DISTINCT is allowed and has
+ no sense inside MIN and MAX grouping functions; so MIN|MAX(DISTINCT ...)
+ is processed like an ordinary MIN | MAX()
+ */
+ | MIN_SYM '(' DISTINCT in_sum_expr ')'
+ { $$=new Item_sum_min($4); }
+ | MAX_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_max($3); }
+ | MAX_SYM '(' DISTINCT in_sum_expr ')'
+ { $$=new Item_sum_max($4); }
+ | STD_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_std($3, 0); }
+ | VARIANCE_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_variance($3, 0); }
+ | STDDEV_SAMP_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_std($3, 1); }
+ | VAR_SAMP_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_variance($3, 1); }
+ | SUM_SYM '(' in_sum_expr ')'
+ { $$=new Item_sum_sum($3); }
+ | SUM_SYM '(' DISTINCT in_sum_expr ')'
+ { $$=new Item_sum_sum_distinct($4); }
+ | GROUP_CONCAT_SYM '(' opt_distinct
+ { Select->in_sum_expr++; }
+ expr_list opt_gorder_clause
+ opt_gconcat_separator
+ ')'
+ {
SELECT_LEX *sel= Select;
- sel->in_sum_expr--;
- $$=new Item_func_group_concat(Lex->current_context(), $3, $5,
+ sel->in_sum_expr--;
+ $$=new Item_func_group_concat(Lex->current_context(), $3, $5,
sel->gorder_list, $7);
- $5->empty();
- };
+ $5->empty();
+ }
+ ;
variable:
'@'
@@ -7105,7 +7449,7 @@ variable:
{
$$= $3;
}
- ;
+ ;
variable_aux:
ident_or_text SET_VAR expr
@@ -7133,96 +7477,120 @@ variable_aux:
;
opt_distinct:
- /* empty */ { $$ = 0; }
- |DISTINCT { $$ = 1; };
+ /* empty */ { $$ = 0; }
+ | DISTINCT { $$ = 1; }
+ ;
opt_gconcat_separator:
- /* empty */
- {
- $$= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
- }
- | SEPARATOR_SYM text_string { $$ = $2; };
-
+ /* empty */
+ {
+ $$= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
+ }
+ | SEPARATOR_SYM text_string { $$ = $2; }
+ ;
opt_gorder_clause:
- /* empty */
- {
+ /* empty */
+ {
Select->gorder_list = NULL;
- }
- | order_clause
+ }
+ | order_clause
{
SELECT_LEX *select= Select;
select->gorder_list=
- (SQL_LIST*) sql_memdup((char*) &select->order_list,
- sizeof(st_sql_list));
- select->order_list.empty();
- };
-
+ (SQL_LIST*) sql_memdup((char*) &select->order_list,
+ sizeof(st_sql_list));
+ select->order_list.empty();
+ }
+ ;
in_sum_expr:
- opt_all
- {
- LEX *lex= Lex;
- if (lex->current_select->inc_in_sum_expr())
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- }
- expr
- {
- Select->in_sum_expr--;
- $$= $3;
- };
+ opt_all
+ {
+ LEX *lex= Lex;
+ if (lex->current_select->inc_in_sum_expr())
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ }
+ expr
+ {
+ Select->in_sum_expr--;
+ $$= $3;
+ }
+ ;
cast_type:
- BINARY opt_len { $$=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
- | CHAR_SYM opt_len opt_binary { $$=ITEM_CAST_CHAR; Lex->dec= 0; }
- | NCHAR_SYM opt_len { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
- | SIGNED_SYM { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | SIGNED_SYM INT_SYM { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | UNSIGNED { $$=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | UNSIGNED INT_SYM { $$=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | DATE_SYM { $$=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | TIME_SYM { $$=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | DATETIME { $$=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
- | DECIMAL_SYM float_options { $$=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
- ;
+ BINARY opt_len
+ { $$=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
+ | CHAR_SYM opt_len opt_binary
+ { $$=ITEM_CAST_CHAR; Lex->dec= 0; }
+ | NCHAR_SYM opt_len
+ { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
+ | SIGNED_SYM
+ { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | SIGNED_SYM INT_SYM
+ { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | UNSIGNED
+ { $$=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | UNSIGNED INT_SYM
+ { $$=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | DATE_SYM
+ { $$=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | TIME_SYM
+ { $$=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | DATETIME
+ { $$=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
+ | DECIMAL_SYM float_options
+ { $$=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
+ ;
opt_expr_list:
- /* empty */ { $$= NULL; }
- | expr_list { $$= $1;}
- ;
+ /* empty */ { $$= NULL; }
+ | expr_list { $$= $1;}
+ ;
expr_list:
- { Select->expr_list.push_front(new List<Item>); }
- expr_list2
- { $$= Select->expr_list.pop(); };
-
-expr_list2:
- expr { Select->expr_list.head()->push_back($1); }
- | expr_list2 ',' expr { Select->expr_list.head()->push_back($3); };
+ expr
+ {
+ $$= new (YYTHD->mem_root) List<Item>;
+ $$->push_back($1);
+ }
+ | expr_list ',' expr
+ {
+ $1->push_back($3);
+ $$= $1;
+ }
+ ;
ident_list_arg:
ident_list { $$= $1; }
- | '(' ident_list ')' { $$= $2; };
+ | '(' ident_list ')' { $$= $2; }
+ ;
ident_list:
- { Select->expr_list.push_front(new List<Item>); }
- ident_list2
- { $$= Select->expr_list.pop(); };
-
-ident_list2:
- simple_ident { Select->expr_list.head()->push_back($1); }
- | ident_list2 ',' simple_ident { Select->expr_list.head()->push_back($3); };
+ simple_ident
+ {
+ $$= new (YYTHD->mem_root) List<Item>;
+ $$->push_back($1);
+ }
+ | ident_list ',' simple_ident
+ {
+ $1->push_back($3);
+ $$= $1;
+ }
+ ;
opt_expr:
- /* empty */ { $$= NULL; }
- | expr { $$= $1; };
+ /* empty */ { $$= NULL; }
+ | expr { $$= $1; }
+ ;
opt_else:
- /* empty */ { $$= NULL; }
- | ELSE expr { $$= $2; };
+ /* empty */ { $$= NULL; }
+ | ELSE expr { $$= $2; }
+ ;
when_list:
WHEN_SYM expr THEN_SYM expr
@@ -7241,22 +7609,22 @@ when_list:
/* Warning - may return NULL in case of incomplete SELECT */
table_ref:
- table_factor { $$=$1; }
+ table_factor { $$=$1; }
| join_table
{
- LEX *lex= Lex;
+ LEX *lex= Lex;
if (!($$= lex->current_select->nest_last_join(lex->thd)))
MYSQL_YYABORT;
}
;
join_table_list:
- derived_table_list { MYSQL_YYABORT_UNLESS($$=$1); }
- ;
+ derived_table_list { MYSQL_YYABORT_UNLESS($$=$1); }
+ ;
/* Warning - may return NULL in case of incomplete SELECT */
derived_table_list:
- table_ref { $$=$1; }
+ table_ref { $$=$1; }
| derived_table_list ',' table_ref
{
MYSQL_YYABORT_UNLESS($1 && ($$=$3));
@@ -7271,17 +7639,17 @@ derived_table_list:
and subsequent optimization phases.
*/
join_table:
-/* INNER JOIN variants */
- /*
- Use %prec to evaluate production 'table_ref' before 'normal_join'
- so that [INNER | CROSS] JOIN is properly nested as other
- left-associative joins.
- */
- table_ref normal_join table_ref %prec TABLE_REF_PRIORITY
+ /* INNER JOIN variants */
+ /*
+ Use %prec to evaluate production 'table_ref' before 'normal_join'
+ so that [INNER | CROSS] JOIN is properly nested as other
+ left-associative joins.
+ */
+ table_ref normal_join table_ref %prec TABLE_REF_PRIORITY
{ MYSQL_YYABORT_UNLESS($1 && ($$=$3)); }
- | table_ref STRAIGHT_JOIN table_factor
- { MYSQL_YYABORT_UNLESS($1 && ($$=$3)); $3->straight=1; }
- | table_ref normal_join table_ref
+ | table_ref STRAIGHT_JOIN table_factor
+ { MYSQL_YYABORT_UNLESS($1 && ($$=$3)); $3->straight=1; }
+ | table_ref normal_join table_ref
ON
{
MYSQL_YYABORT_UNLESS($1 && $3);
@@ -7291,7 +7659,7 @@ join_table:
Select->parsing_place= IN_ON;
}
expr
- {
+ {
add_join_on($3,$6);
Lex->pop_context();
Select->parsing_place= NO_MATTER;
@@ -7312,21 +7680,21 @@ join_table:
Lex->pop_context();
Select->parsing_place= NO_MATTER;
}
- | table_ref normal_join table_ref
- USING
- {
+ | table_ref normal_join table_ref
+ USING
+ {
MYSQL_YYABORT_UNLESS($1 && $3);
- }
- '(' using_list ')'
+ }
+ '(' using_list ')'
{ add_join_natural($1,$3,$7,Select); $$=$3; }
- | table_ref NATURAL JOIN_SYM table_factor
- {
+ | table_ref NATURAL JOIN_SYM table_factor
+ {
MYSQL_YYABORT_UNLESS($1 && ($$=$4));
add_join_natural($1,$4,NULL,Select);
}
-/* LEFT JOIN variants */
- | table_ref LEFT opt_outer JOIN_SYM table_ref
+ /* LEFT JOIN variants */
+ | table_ref LEFT opt_outer JOIN_SYM table_ref
ON
{
MYSQL_YYABORT_UNLESS($1 && $5);
@@ -7336,33 +7704,33 @@ join_table:
Select->parsing_place= IN_ON;
}
expr
- {
+ {
add_join_on($5,$8);
Lex->pop_context();
$5->outer_join|=JOIN_TYPE_LEFT;
$$=$5;
Select->parsing_place= NO_MATTER;
}
- | table_ref LEFT opt_outer JOIN_SYM table_factor
- {
+ | table_ref LEFT opt_outer JOIN_SYM table_factor
+ {
MYSQL_YYABORT_UNLESS($1 && $5);
- }
- USING '(' using_list ')'
+ }
+ USING '(' using_list ')'
{
add_join_natural($1,$5,$9,Select);
$5->outer_join|=JOIN_TYPE_LEFT;
$$=$5;
}
- | table_ref NATURAL LEFT opt_outer JOIN_SYM table_factor
- {
+ | table_ref NATURAL LEFT opt_outer JOIN_SYM table_factor
+ {
MYSQL_YYABORT_UNLESS($1 && $6);
- add_join_natural($1,$6,NULL,Select);
- $6->outer_join|=JOIN_TYPE_LEFT;
- $$=$6;
- }
+ add_join_natural($1,$6,NULL,Select);
+ $6->outer_join|=JOIN_TYPE_LEFT;
+ $$=$6;
+ }
-/* RIGHT JOIN variants */
- | table_ref RIGHT opt_outer JOIN_SYM table_ref
+ /* RIGHT JOIN variants */
+ | table_ref RIGHT opt_outer JOIN_SYM table_ref
ON
{
MYSQL_YYABORT_UNLESS($1 && $5);
@@ -7373,55 +7741,56 @@ join_table:
}
expr
{
- LEX *lex= Lex;
+ LEX *lex= Lex;
if (!($$= lex->current_select->convert_right_join()))
MYSQL_YYABORT;
add_join_on($$, $8);
Lex->pop_context();
Select->parsing_place= NO_MATTER;
}
- | table_ref RIGHT opt_outer JOIN_SYM table_factor
- {
+ | table_ref RIGHT opt_outer JOIN_SYM table_factor
+ {
MYSQL_YYABORT_UNLESS($1 && $5);
- }
- USING '(' using_list ')'
+ }
+ USING '(' using_list ')'
{
- LEX *lex= Lex;
+ LEX *lex= Lex;
if (!($$= lex->current_select->convert_right_join()))
MYSQL_YYABORT;
add_join_natural($$,$5,$9,Select);
}
- | table_ref NATURAL RIGHT opt_outer JOIN_SYM table_factor
- {
+ | table_ref NATURAL RIGHT opt_outer JOIN_SYM table_factor
+ {
MYSQL_YYABORT_UNLESS($1 && $6);
- add_join_natural($6,$1,NULL,Select);
- LEX *lex= Lex;
+ add_join_natural($6,$1,NULL,Select);
+ LEX *lex= Lex;
if (!($$= lex->current_select->convert_right_join()))
MYSQL_YYABORT;
- };
+ }
+ ;
normal_join:
- JOIN_SYM {}
- | INNER_SYM JOIN_SYM {}
- | CROSS JOIN_SYM {}
- ;
+ JOIN_SYM {}
+ | INNER_SYM JOIN_SYM {}
+ | CROSS JOIN_SYM {}
+ ;
/* Warning - may return NULL in case of incomplete SELECT */
table_factor:
- {
- SELECT_LEX *sel= Select;
- sel->table_join_options= 0;
- }
- table_ident opt_table_alias opt_key_definition
- {
- if (!($$= Select->add_table_to_list(YYTHD, $2, $3,
- Select->get_table_join_options(),
- Lex->lock_option,
- Select->pop_index_hints())))
- MYSQL_YYABORT;
- Select->add_joined_table($$);
- }
- | '{' ident table_ref LEFT OUTER JOIN_SYM table_ref
+ {
+ SELECT_LEX *sel= Select;
+ sel->table_join_options= 0;
+ }
+ table_ident opt_table_alias opt_key_definition
+ {
+ if (!($$= Select->add_table_to_list(YYTHD, $2, $3,
+ Select->get_table_join_options(),
+ Lex->lock_option,
+ Select->pop_index_hints())))
+ MYSQL_YYABORT;
+ Select->add_joined_table($$);
+ }
+ | '{' ident table_ref LEFT OUTER JOIN_SYM table_ref
ON
{
/* Change the current name resolution context to a local context. */
@@ -7430,8 +7799,8 @@ table_factor:
}
expr '}'
- {
- LEX *lex= Lex;
+ {
+ LEX *lex= Lex;
MYSQL_YYABORT_UNLESS($3 && $7);
add_join_on($7,$10);
Lex->pop_context();
@@ -7440,19 +7809,19 @@ table_factor:
if (!($$= lex->current_select->nest_last_join(lex->thd)))
MYSQL_YYABORT;
}
- | select_derived_init get_select_lex select_derived2
+ | select_derived_init get_select_lex select_derived2
{
LEX *lex= Lex;
SELECT_LEX *sel= lex->current_select;
if ($1)
{
- if (sel->set_braces(1))
- {
+ if (sel->set_braces(1))
+ {
my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
+ MYSQL_YYABORT;
+ }
/* select in braces, can't contain global parameters */
- if (sel->master_unit()->fake_select_lex)
+ if (sel->master_unit()->fake_select_lex)
sel->master_unit()->global_parameters=
sel->master_unit()->fake_select_lex;
}
@@ -7462,54 +7831,52 @@ table_factor:
/* incomplete derived tables return NULL, we must be
nested in select_derived rule to be here. */
}
- | '(' get_select_lex select_derived union_opt ')' opt_table_alias
- {
- /* Use $2 instead of Lex->current_select as derived table will
- alter value of Lex->current_select. */
-
- if (!($3 || $6) && $2->embedding &&
- !$2->embedding->nested_join->join_list.elements)
- {
- /* we have a derived table ($3 == NULL) but no alias,
- Since we are nested in further parentheses so we
- can pass NULL to the outer level parentheses
- Permits parsing of "((((select ...))) as xyz)" */
- $$= 0;
- }
- else
- if (!$3)
+ | '(' get_select_lex select_derived union_opt ')' opt_table_alias
{
- /* Handle case of derived table, alias may be NULL if there
- are no outer parentheses, add_table_to_list() will throw
- error in this case */
- LEX *lex=Lex;
- SELECT_LEX *sel= lex->current_select;
- SELECT_LEX_UNIT *unit= sel->master_unit();
- lex->current_select= sel= unit->outer_select();
- if (!($$= sel->
- add_table_to_list(lex->thd, new Table_ident(unit), $6, 0,
- TL_READ)))
-
- MYSQL_YYABORT;
- sel->add_joined_table($$);
- lex->pop_context();
+ /* Use $2 instead of Lex->current_select as derived table will
+ alter value of Lex->current_select. */
+
+ if (!($3 || $6) && $2->embedding &&
+ !$2->embedding->nested_join->join_list.elements)
+ {
+ /* we have a derived table ($3 == NULL) but no alias,
+ Since we are nested in further parentheses so we
+ can pass NULL to the outer level parentheses
+ Permits parsing of "((((select ...))) as xyz)" */
+ $$= 0;
+ }
+ else if (!$3)
+ {
+ /* Handle case of derived table, alias may be NULL if there
+ are no outer parentheses, add_table_to_list() will throw
+ error in this case */
+ LEX *lex=Lex;
+ SELECT_LEX *sel= lex->current_select;
+ SELECT_LEX_UNIT *unit= sel->master_unit();
+ lex->current_select= sel= unit->outer_select();
+ if (!($$= sel->add_table_to_list(lex->thd,
+ new Table_ident(unit), $6, 0,
+ TL_READ)))
+
+ MYSQL_YYABORT;
+ sel->add_joined_table($$);
+ lex->pop_context();
+ }
+ else if ($4 || $6)
+ {
+ /* simple nested joins cannot have aliases or unions */
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ else
+ $$= $3;
}
- else
- if ($4 || $6)
- {
- /* simple nested joins cannot have aliases or unions */
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- else
- $$= $3;
- }
;
/* handle contents of parentheses in join expression */
select_derived:
- get_select_lex
- {
+ get_select_lex
+ {
LEX *lex= Lex;
if ($1->init_nested_join(lex->thd))
MYSQL_YYABORT;
@@ -7525,37 +7892,37 @@ select_derived:
if (!$3 && $$)
{
my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
+ MYSQL_YYABORT;
}
}
- ;
+ ;
select_derived2:
- {
- LEX *lex= Lex;
- lex->derived_tables|= DERIVED_SUBQUERY;
- if (!lex->expr_allows_subselect ||
- lex->sql_command == (int)SQLCOM_PURGE)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
- mysql_new_select(lex, 1))
- MYSQL_YYABORT;
- mysql_init_select(lex);
- lex->current_select->linkage= DERIVED_TABLE_TYPE;
- lex->current_select->parsing_place= SELECT_LIST;
- }
- select_options select_item_list
- {
- Select->parsing_place= NO_MATTER;
- }
- opt_select_from
+ {
+ LEX *lex= Lex;
+ lex->derived_tables|= DERIVED_SUBQUERY;
+ if (!lex->expr_allows_subselect ||
+ lex->sql_command == (int)SQLCOM_PURGE)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
+ mysql_new_select(lex, 1))
+ MYSQL_YYABORT;
+ mysql_init_select(lex);
+ lex->current_select->linkage= DERIVED_TABLE_TYPE;
+ lex->current_select->parsing_place= SELECT_LIST;
+ }
+ select_options select_item_list
+ {
+ Select->parsing_place= NO_MATTER;
+ }
+ opt_select_from
;
get_select_lex:
- /* Empty */ { $$= Select; }
+ /* Empty */ { $$= Select; }
;
select_derived_init:
@@ -7572,11 +7939,11 @@ select_derived_init:
SELECT_LEX *sel= lex->current_select;
TABLE_LIST *embedding;
if (!sel->embedding || sel->end_nested_join(lex->thd))
- {
+ {
/* we are not in parentheses */
my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
+ MYSQL_YYABORT;
+ }
embedding= Select->embedding;
$$= embedding &&
!embedding->nested_join->join_list.elements;
@@ -7585,226 +7952,231 @@ select_derived_init:
;
opt_outer:
- /* empty */ {}
- | OUTER {};
+ /* empty */ {}
+ | OUTER {}
+ ;
index_hint_clause:
- /* empty */
+ /* empty */
{
$$= global_system_variables.old_mode ?
INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL;
- }
- | FOR_SYM JOIN_SYM { $$= INDEX_HINT_MASK_JOIN; }
- | FOR_SYM ORDER_SYM BY { $$= INDEX_HINT_MASK_ORDER; }
- | FOR_SYM GROUP_SYM BY { $$= INDEX_HINT_MASK_GROUP; }
- ;
+ }
+ | FOR_SYM JOIN_SYM { $$= INDEX_HINT_MASK_JOIN; }
+ | FOR_SYM ORDER_SYM BY { $$= INDEX_HINT_MASK_ORDER; }
+ | FOR_SYM GROUP_SYM BY { $$= INDEX_HINT_MASK_GROUP; }
+ ;
index_hint_type:
- FORCE_SYM { $$= INDEX_HINT_FORCE; }
- | IGNORE_SYM { $$= INDEX_HINT_IGNORE; }
- ;
+ FORCE_SYM { $$= INDEX_HINT_FORCE; }
+ | IGNORE_SYM { $$= INDEX_HINT_IGNORE; }
+ ;
index_hint_definition:
- index_hint_type key_or_index index_hint_clause
- {
- Select->set_index_hint_type($1, $3);
- }
- '(' key_usage_list ')'
- | USE_SYM key_or_index index_hint_clause
- {
- Select->set_index_hint_type(INDEX_HINT_USE, $3);
- }
- '(' opt_key_usage_list ')'
+ index_hint_type key_or_index index_hint_clause
+ {
+ Select->set_index_hint_type($1, $3);
+ }
+ '(' key_usage_list ')'
+ | USE_SYM key_or_index index_hint_clause
+ {
+ Select->set_index_hint_type(INDEX_HINT_USE, $3);
+ }
+ '(' opt_key_usage_list ')'
;
index_hints_list:
- index_hint_definition
- | index_hints_list index_hint_definition
- ;
+ index_hint_definition
+ | index_hints_list index_hint_definition
+ ;
opt_index_hints_list:
- /* empty */
- | { Select->alloc_index_hints(YYTHD); } index_hints_list
- ;
+ /* empty */
+ | { Select->alloc_index_hints(YYTHD); } index_hints_list
+ ;
opt_key_definition:
- { Select->clear_index_hints(); }
- opt_index_hints_list
- ;
+ { Select->clear_index_hints(); }
+ opt_index_hints_list
+ ;
opt_key_usage_list:
- /* empty */ { Select->add_index_hint(YYTHD, NULL, 0); }
- | key_usage_list {}
- ;
+ /* empty */ { Select->add_index_hint(YYTHD, NULL, 0); }
+ | key_usage_list {}
+ ;
key_usage_element:
- ident { Select->add_index_hint(YYTHD, $1.str, $1.length); }
- | PRIMARY_SYM
- {
- Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7);
- }
+ ident
+ { Select->add_index_hint(YYTHD, $1.str, $1.length); }
+ | PRIMARY_SYM
+ { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); }
;
key_usage_list:
- key_usage_element
- | key_usage_list ',' key_usage_element
+ key_usage_element
+ | key_usage_list ',' key_usage_element
;
using_list:
- ident
- {
+ ident
+ {
if (!($$= new List<String>))
- MYSQL_YYABORT;
+ MYSQL_YYABORT;
$$->push_back(new (YYTHD->mem_root)
String((const char *) $1.str, $1.length,
system_charset_info));
- }
- | using_list ',' ident
- {
+ }
+ | using_list ',' ident
+ {
$1->push_back(new (YYTHD->mem_root)
String((const char *) $3.str, $3.length,
system_charset_info));
$$= $1;
- };
+ }
+ ;
interval:
- interval_time_st {}
- | DAY_HOUR_SYM { $$=INTERVAL_DAY_HOUR; }
- | DAY_MICROSECOND_SYM { $$=INTERVAL_DAY_MICROSECOND; }
- | DAY_MINUTE_SYM { $$=INTERVAL_DAY_MINUTE; }
- | DAY_SECOND_SYM { $$=INTERVAL_DAY_SECOND; }
- | HOUR_MICROSECOND_SYM { $$=INTERVAL_HOUR_MICROSECOND; }
- | HOUR_MINUTE_SYM { $$=INTERVAL_HOUR_MINUTE; }
- | HOUR_SECOND_SYM { $$=INTERVAL_HOUR_SECOND; }
- | MICROSECOND_SYM { $$=INTERVAL_MICROSECOND; }
- | MINUTE_MICROSECOND_SYM { $$=INTERVAL_MINUTE_MICROSECOND; }
- | MINUTE_SECOND_SYM { $$=INTERVAL_MINUTE_SECOND; }
- | SECOND_MICROSECOND_SYM { $$=INTERVAL_SECOND_MICROSECOND; }
- | YEAR_MONTH_SYM { $$=INTERVAL_YEAR_MONTH; };
+ interval_time_st {}
+ | DAY_HOUR_SYM { $$=INTERVAL_DAY_HOUR; }
+ | DAY_MICROSECOND_SYM { $$=INTERVAL_DAY_MICROSECOND; }
+ | DAY_MINUTE_SYM { $$=INTERVAL_DAY_MINUTE; }
+ | DAY_SECOND_SYM { $$=INTERVAL_DAY_SECOND; }
+ | HOUR_MICROSECOND_SYM { $$=INTERVAL_HOUR_MICROSECOND; }
+ | HOUR_MINUTE_SYM { $$=INTERVAL_HOUR_MINUTE; }
+ | HOUR_SECOND_SYM { $$=INTERVAL_HOUR_SECOND; }
+ | MICROSECOND_SYM { $$=INTERVAL_MICROSECOND; }
+ | MINUTE_MICROSECOND_SYM { $$=INTERVAL_MINUTE_MICROSECOND; }
+ | MINUTE_SECOND_SYM { $$=INTERVAL_MINUTE_SECOND; }
+ | SECOND_MICROSECOND_SYM { $$=INTERVAL_SECOND_MICROSECOND; }
+ | YEAR_MONTH_SYM { $$=INTERVAL_YEAR_MONTH; }
+ ;
interval_time_st:
- DAY_SYM { $$=INTERVAL_DAY; }
- | WEEK_SYM { $$=INTERVAL_WEEK; }
- | HOUR_SYM { $$=INTERVAL_HOUR; }
- | FRAC_SECOND_SYM { $$=INTERVAL_MICROSECOND; }
- | MINUTE_SYM { $$=INTERVAL_MINUTE; }
- | MONTH_SYM { $$=INTERVAL_MONTH; }
- | QUARTER_SYM { $$=INTERVAL_QUARTER; }
- | SECOND_SYM { $$=INTERVAL_SECOND; }
- | YEAR_SYM { $$=INTERVAL_YEAR; }
+ DAY_SYM { $$=INTERVAL_DAY; }
+ | WEEK_SYM { $$=INTERVAL_WEEK; }
+ | HOUR_SYM { $$=INTERVAL_HOUR; }
+ | FRAC_SECOND_SYM { $$=INTERVAL_MICROSECOND; }
+ | MINUTE_SYM { $$=INTERVAL_MINUTE; }
+ | MONTH_SYM { $$=INTERVAL_MONTH; }
+ | QUARTER_SYM { $$=INTERVAL_QUARTER; }
+ | SECOND_SYM { $$=INTERVAL_SECOND; }
+ | YEAR_SYM { $$=INTERVAL_YEAR; }
;
date_time_type:
- DATE_SYM {$$=MYSQL_TIMESTAMP_DATE;}
- | TIME_SYM {$$=MYSQL_TIMESTAMP_TIME;}
- | DATETIME {$$=MYSQL_TIMESTAMP_DATETIME;}
- | TIMESTAMP {$$=MYSQL_TIMESTAMP_DATETIME;}
+ DATE_SYM {$$=MYSQL_TIMESTAMP_DATE;}
+ | TIME_SYM {$$=MYSQL_TIMESTAMP_TIME;}
+ | DATETIME {$$=MYSQL_TIMESTAMP_DATETIME;}
+ | TIMESTAMP {$$=MYSQL_TIMESTAMP_DATETIME;}
;
table_alias:
- /* empty */
- | AS
- | EQ;
+ /* empty */
+ | AS
+ | EQ
+ ;
opt_table_alias:
- /* empty */ { $$=0; }
- | table_alias ident
- { $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); };
+ /* empty */ { $$=0; }
+ | table_alias ident
+ { $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); }
+ ;
opt_all:
- /* empty */
- | ALL
- ;
+ /* empty */
+ | ALL
+ ;
where_clause:
- /* empty */ { Select->where= 0; }
- | WHERE
+ /* empty */ { Select->where= 0; }
+ | WHERE
{
Select->parsing_place= IN_WHERE;
}
expr
- {
+ {
SELECT_LEX *select= Select;
- select->where= $3;
+ select->where= $3;
select->parsing_place= NO_MATTER;
- if ($3)
- $3->top_level_item();
- }
- ;
+ if ($3)
+ $3->top_level_item();
+ }
+ ;
having_clause:
- /* empty */
- | HAVING
- {
- Select->parsing_place= IN_HAVING;
- }
- expr
- {
- SELECT_LEX *sel= Select;
- sel->having= $3;
- sel->parsing_place= NO_MATTER;
- if ($3)
- $3->top_level_item();
- }
- ;
+ /* empty */
+ | HAVING
+ {
+ Select->parsing_place= IN_HAVING;
+ }
+ expr
+ {
+ SELECT_LEX *sel= Select;
+ sel->having= $3;
+ sel->parsing_place= NO_MATTER;
+ if ($3)
+ $3->top_level_item();
+ }
+ ;
opt_escape:
- ESCAPE_SYM simple_expr
+ ESCAPE_SYM simple_expr
{
Lex->escape_used= TRUE;
$$= $2;
}
- | /* empty */
+ | /* empty */
{
Lex->escape_used= FALSE;
$$= ((YYTHD->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
- new Item_string("", 0, &my_charset_latin1) :
+ new Item_string("", 0, &my_charset_latin1) :
new Item_string("\\", 1, &my_charset_latin1));
}
;
-
/*
group by statement in select
*/
group_clause:
- /* empty */
- | GROUP_SYM BY group_list olap_opt;
+ /* empty */
+ | GROUP_SYM BY group_list olap_opt
+ ;
group_list:
- group_list ',' order_ident order_dir
- { if (add_group_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; }
- | order_ident order_dir
- { if (add_group_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; };
+ group_list ',' order_ident order_dir
+ { if (add_group_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; }
+ | order_ident order_dir
+ { if (add_group_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; }
+ ;
olap_opt:
- /* empty */ {}
- | WITH CUBE_SYM
- {
- LEX *lex=Lex;
- if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
- {
- my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
- "global union parameters");
- MYSQL_YYABORT;
- }
- lex->current_select->olap= CUBE_TYPE;
- my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
- MYSQL_YYABORT; /* To be deleted in 5.1 */
- }
- | WITH ROLLUP_SYM
- {
- LEX *lex= Lex;
- if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
- {
- my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
- "global union parameters");
- MYSQL_YYABORT;
- }
- lex->current_select->olap= ROLLUP_TYPE;
- }
- ;
+ /* empty */ {}
+ | WITH CUBE_SYM
+ {
+ LEX *lex=Lex;
+ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
+ {
+ my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
+ "global union parameters");
+ MYSQL_YYABORT;
+ }
+ lex->current_select->olap= CUBE_TYPE;
+ my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
+ MYSQL_YYABORT; /* To be deleted in 5.1 */
+ }
+ | WITH ROLLUP_SYM
+ {
+ LEX *lex= Lex;
+ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
+ {
+ my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
+ "global union parameters");
+ MYSQL_YYABORT;
+ }
+ lex->current_select->olap= ROLLUP_TYPE;
+ }
+ ;
/*
Order by statement in ALTER TABLE
@@ -7834,166 +8206,172 @@ alter_order_item:
*/
opt_order_clause:
- /* empty */
- | order_clause;
+ /* empty */
+ | order_clause
+ ;
order_clause:
- ORDER_SYM BY
- {
- LEX *lex=Lex;
- SELECT_LEX *sel= lex->current_select;
- SELECT_LEX_UNIT *unit= sel-> master_unit();
- if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
- sel->olap != UNSPECIFIED_OLAP_TYPE)
- {
- my_error(ER_WRONG_USAGE, MYF(0),
- "CUBE/ROLLUP", "ORDER BY");
- MYSQL_YYABORT;
- }
- if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
+ ORDER_SYM BY
{
- /*
- A query of the of the form (SELECT ...) ORDER BY order_list is
- executed in the same way as the query
- SELECT ... ORDER BY order_list
- unless the SELECT construct contains ORDER BY or LIMIT clauses.
- Otherwise we create a fake SELECT_LEX if it has not been created
- yet.
- */
- SELECT_LEX *first_sl= unit->first_select();
- if (!unit->is_union() &&
- (first_sl->order_list.elements ||
- first_sl->select_limit) &&
- unit->add_fake_select_lex(lex->thd))
+ LEX *lex=Lex;
+ SELECT_LEX *sel= lex->current_select;
+ SELECT_LEX_UNIT *unit= sel-> master_unit();
+ if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
+ sel->olap != UNSPECIFIED_OLAP_TYPE)
+ {
+ my_error(ER_WRONG_USAGE, MYF(0),
+ "CUBE/ROLLUP", "ORDER BY");
MYSQL_YYABORT;
+ }
+ if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
+ {
+ /*
+ A query of the of the form (SELECT ...) ORDER BY order_list is
+ executed in the same way as the query
+ SELECT ... ORDER BY order_list
+ unless the SELECT construct contains ORDER BY or LIMIT clauses.
+ Otherwise we create a fake SELECT_LEX if it has not been created
+ yet.
+ */
+ SELECT_LEX *first_sl= unit->first_select();
+ if (!unit->is_union() &&
+ (first_sl->order_list.elements ||
+ first_sl->select_limit) &&
+ unit->add_fake_select_lex(lex->thd))
+ MYSQL_YYABORT;
+ }
}
- } order_list;
+ order_list
+ ;
order_list:
- order_list ',' order_ident order_dir
- { if (add_order_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; }
- | order_ident order_dir
- { if (add_order_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; };
+ order_list ',' order_ident order_dir
+ { if (add_order_to_list(YYTHD, $3,(bool) $4)) MYSQL_YYABORT; }
+ | order_ident order_dir
+ { if (add_order_to_list(YYTHD, $1,(bool) $2)) MYSQL_YYABORT; }
+ ;
order_dir:
- /* empty */ { $$ = 1; }
- | ASC { $$ =1; }
- | DESC { $$ =0; };
-
+ /* empty */ { $$ = 1; }
+ | ASC { $$ =1; }
+ | DESC { $$ =0; }
+ ;
opt_limit_clause_init:
- /* empty */
- {
- LEX *lex= Lex;
- SELECT_LEX *sel= lex->current_select;
- sel->offset_limit= 0;
- sel->select_limit= 0;
- }
- | limit_clause {}
- ;
+ /* empty */
+ {
+ LEX *lex= Lex;
+ SELECT_LEX *sel= lex->current_select;
+ sel->offset_limit= 0;
+ sel->select_limit= 0;
+ }
+ | limit_clause {}
+ ;
opt_limit_clause:
- /* empty */ {}
- | limit_clause {}
- ;
+ /* empty */ {}
+ | limit_clause {}
+ ;
limit_clause:
- LIMIT limit_options {}
- ;
+ LIMIT limit_options {}
+ ;
limit_options:
- limit_option
- {
+ limit_option
+ {
SELECT_LEX *sel= Select;
sel->select_limit= $1;
sel->offset_limit= 0;
- sel->explicit_limit= 1;
- }
- | limit_option ',' limit_option
- {
- SELECT_LEX *sel= Select;
- sel->select_limit= $3;
- sel->offset_limit= $1;
- sel->explicit_limit= 1;
- }
- | limit_option OFFSET_SYM limit_option
- {
- SELECT_LEX *sel= Select;
- sel->select_limit= $1;
- sel->offset_limit= $3;
- sel->explicit_limit= 1;
- }
- ;
+ sel->explicit_limit= 1;
+ }
+ | limit_option ',' limit_option
+ {
+ SELECT_LEX *sel= Select;
+ sel->select_limit= $3;
+ sel->offset_limit= $1;
+ sel->explicit_limit= 1;
+ }
+ | limit_option OFFSET_SYM limit_option
+ {
+ SELECT_LEX *sel= Select;
+ sel->select_limit= $1;
+ sel->offset_limit= $3;
+ sel->explicit_limit= 1;
+ }
+ ;
+
limit_option:
- param_marker
- {
- ((Item_param *) $1)->set_strict_type(INT_RESULT);
- }
+ param_marker
+ {
+ ((Item_param *) $1)->set_strict_type(INT_RESULT);
+ }
| ULONGLONG_NUM { $$= new Item_uint($1.str, $1.length); }
- | LONG_NUM { $$= new Item_uint($1.str, $1.length); }
+ | LONG_NUM { $$= new Item_uint($1.str, $1.length); }
| NUM { $$= new Item_uint($1.str, $1.length); }
;
delete_limit_clause:
- /* empty */
- {
- LEX *lex=Lex;
- lex->current_select->select_limit= 0;
- }
- | LIMIT limit_option
- {
- SELECT_LEX *sel= Select;
- sel->select_limit= $2;
- sel->explicit_limit= 1;
- };
+ /* empty */
+ {
+ LEX *lex=Lex;
+ lex->current_select->select_limit= 0;
+ }
+ | LIMIT limit_option
+ {
+ SELECT_LEX *sel= Select;
+ sel->select_limit= $2;
+ sel->explicit_limit= 1;
+ }
+ ;
ulong_num:
NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
- | HEX_NUM { $$= (ulong) strtol($1.str, (char**) 0, 16); }
- | LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
- | ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
+ | HEX_NUM { $$= (ulong) strtol($1.str, (char**) 0, 16); }
+ | LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
+ | ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
| DECIMAL_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
- | FLOAT_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
+ | FLOAT_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
;
real_ulong_num:
NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
- | HEX_NUM { $$= (ulong) strtol($1.str, (char**) 0, 16); }
- | LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
- | ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
+ | HEX_NUM { $$= (ulong) strtol($1.str, (char**) 0, 16); }
+ | LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
+ | ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
| dec_num_error { MYSQL_YYABORT; }
;
ulonglong_num:
- NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | ULONGLONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | LONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | DECIMAL_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | FLOAT_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- ;
+ NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | ULONGLONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | LONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | DECIMAL_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | FLOAT_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ ;
real_ulonglong_num:
- NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | ULONGLONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
- | LONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | ULONGLONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
+ | LONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
| dec_num_error { MYSQL_YYABORT; }
;
dec_num_error:
- dec_num
- { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
+ dec_num
+ { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
;
dec_num:
- DECIMAL_NUM
- | FLOAT_NUM
+ DECIMAL_NUM
+ | FLOAT_NUM
;
procedure_clause:
- /* empty */
- | PROCEDURE ident /* Procedure name */
- {
- LEX *lex=Lex;
+ /* empty */
+ | PROCEDURE ident /* Procedure name */
+ {
+ LEX *lex=Lex;
if (! lex->parsing_options.allows_select_procedure)
{
@@ -8001,225 +8379,227 @@ procedure_clause:
MYSQL_YYABORT;
}
- if (&lex->select_lex != lex->current_select)
- {
- my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
- MYSQL_YYABORT;
- }
- lex->proc_list.elements=0;
- lex->proc_list.first=0;
- lex->proc_list.next= (uchar**) &lex->proc_list.first;
- if (add_proc_to_list(lex->thd, new Item_field(&lex->
+ if (&lex->select_lex != lex->current_select)
+ {
+ my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
+ MYSQL_YYABORT;
+ }
+ lex->proc_list.elements=0;
+ lex->proc_list.first=0;
+ lex->proc_list.next= (uchar**) &lex->proc_list.first;
+ if (add_proc_to_list(lex->thd, new Item_field(&lex->
current_select->
context,
NULL,NULL,$2.str)))
- MYSQL_YYABORT;
- Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
- }
- '(' procedure_list ')';
-
+ MYSQL_YYABORT;
+ Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
+ }
+ '(' procedure_list ')'
+ ;
procedure_list:
- /* empty */ {}
- | procedure_list2 {};
+ /* empty */ {}
+ | procedure_list2 {}
+ ;
procedure_list2:
- procedure_list2 ',' procedure_item
- | procedure_item;
+ procedure_list2 ',' procedure_item
+ | procedure_item
+ ;
procedure_item:
- remember_name expr remember_end
- {
+ remember_name expr remember_end
+ {
THD *thd= YYTHD;
- if (add_proc_to_list(thd, $2))
- MYSQL_YYABORT;
- if (!$2->name)
+ if (add_proc_to_list(thd, $2))
+ MYSQL_YYABORT;
+ if (!$2->name)
$2->set_name($1, (uint) ($3 - $1), thd->charset());
- }
- ;
-
+ }
+ ;
select_var_list_init:
- {
- LEX *lex=Lex;
- if (!lex->describe && (!(lex->result= new select_dumpvar())))
- MYSQL_YYABORT;
- }
- select_var_list
- {}
- ;
+ {
+ LEX *lex=Lex;
+ if (!lex->describe && (!(lex->result= new select_dumpvar())))
+ MYSQL_YYABORT;
+ }
+ select_var_list
+ {}
+ ;
select_var_list:
- select_var_list ',' select_var_ident
- | select_var_ident {}
- ;
+ select_var_list ',' select_var_ident
+ | select_var_ident {}
+ ;
select_var_ident:
- '@' ident_or_text
- {
- LEX *lex=Lex;
- if (lex->result)
- ((select_dumpvar *)lex->result)->var_list.push_back( new my_var($2,0,0,(enum_field_types)0));
- else
- /*
- The parser won't create select_result instance only
- if it's an EXPLAIN.
- */
- DBUG_ASSERT(lex->describe);
- }
- | ident_or_text
- {
- LEX *lex=Lex;
- sp_variable_t *t;
-
- if (!lex->spcont || !(t=lex->spcont->find_variable(&$1)))
- {
- my_error(ER_SP_UNDECLARED_VAR, MYF(0), $1.str);
- MYSQL_YYABORT;
- }
- if (lex->result)
- {
- my_var *var;
- ((select_dumpvar *)lex->result)->
- var_list.push_back(var= new my_var($1,1,t->offset,t->type));
+ '@' ident_or_text
+ {
+ LEX *lex=Lex;
+ if (lex->result)
+ ((select_dumpvar *)lex->result)->var_list.push_back( new my_var($2,0,0,(enum_field_types)0));
+ else
+ /*
+ The parser won't create select_result instance only
+ if it's an EXPLAIN.
+ */
+ DBUG_ASSERT(lex->describe);
+ }
+ | ident_or_text
+ {
+ LEX *lex=Lex;
+ sp_variable_t *t;
+
+ if (!lex->spcont || !(t=lex->spcont->find_variable(&$1)))
+ {
+ my_error(ER_SP_UNDECLARED_VAR, MYF(0), $1.str);
+ MYSQL_YYABORT;
+ }
+ if (lex->result)
+ {
+ my_var *var;
+ ((select_dumpvar *)lex->result)->
+ var_list.push_back(var= new my_var($1,1,t->offset,t->type));
#ifndef DBUG_OFF
- if (var)
- var->sp= lex->sphead;
+ if (var)
+ var->sp= lex->sphead;
#endif
- }
- else
- {
- /*
- The parser won't create select_result instance only
- if it's an EXPLAIN.
- */
- DBUG_ASSERT(lex->describe);
- }
- }
- ;
+ }
+ else
+ {
+ /*
+ The parser won't create select_result instance only
+ if it's an EXPLAIN.
+ */
+ DBUG_ASSERT(lex->describe);
+ }
+ }
+ ;
into:
- INTO
- {
- if (! Lex->parsing_options.allows_select_into)
+ INTO
{
- my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
- MYSQL_YYABORT;
+ if (! Lex->parsing_options.allows_select_into)
+ {
+ my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
+ MYSQL_YYABORT;
+ }
}
- }
- into_destination
+ into_destination
;
into_destination:
- OUTFILE TEXT_STRING_filesystem
- {
- LEX *lex= Lex;
- lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
- if (!(lex->exchange= new sql_exchange($2.str, 0)) ||
- !(lex->result= new select_export(lex->exchange)))
- MYSQL_YYABORT;
- }
- opt_field_term opt_line_term
- | DUMPFILE TEXT_STRING_filesystem
- {
- LEX *lex=Lex;
- if (!lex->describe)
- {
- lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
- if (!(lex->exchange= new sql_exchange($2.str,1)))
- MYSQL_YYABORT;
- if (!(lex->result= new select_dump(lex->exchange)))
- MYSQL_YYABORT;
- }
- }
+ OUTFILE TEXT_STRING_filesystem
+ {
+ LEX *lex= Lex;
+ lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
+ if (!(lex->exchange= new sql_exchange($2.str, 0)) ||
+ !(lex->result= new select_export(lex->exchange)))
+ MYSQL_YYABORT;
+ }
+ opt_field_term opt_line_term
+ | DUMPFILE TEXT_STRING_filesystem
+ {
+ LEX *lex=Lex;
+ if (!lex->describe)
+ {
+ lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
+ if (!(lex->exchange= new sql_exchange($2.str,1)))
+ MYSQL_YYABORT;
+ if (!(lex->result= new select_dump(lex->exchange)))
+ MYSQL_YYABORT;
+ }
+ }
| select_var_list_init
- {
- Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
- }
+ {
+ Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
+ }
;
/*
DO statement
*/
-do: DO_SYM
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_DO;
- mysql_init_select(lex);
- }
- expr_list
- {
- Lex->insert_list= $3;
- }
- ;
+do:
+ DO_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_DO;
+ mysql_init_select(lex);
+ }
+ expr_list
+ {
+ Lex->insert_list= $3;
+ }
+ ;
/*
Drop : delete tables or index or user
*/
drop:
- DROP opt_temporary table_or_tables if_exists table_list opt_restrict
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_DROP_TABLE;
- lex->drop_temporary= $2;
- lex->drop_if_exists= $4;
- }
- | DROP INDEX_SYM ident ON table_ident {}
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_DROP_INDEX;
- lex->alter_info.reset();
- lex->alter_info.flags= ALTER_DROP_INDEX;
- lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
- $3.str));
- if (!lex->current_select->add_table_to_list(lex->thd, $5, NULL,
- TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- }
- | DROP DATABASE if_exists ident
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_DROP_DB;
- lex->drop_if_exists=$3;
- lex->name= $4;
- }
- | DROP FUNCTION_SYM if_exists sp_name
- {
- LEX *lex=Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_DROP_FUNCTION;
- lex->drop_if_exists= $3;
- lex->spname= $4;
- }
- | DROP PROCEDURE if_exists sp_name
- {
- LEX *lex=Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_DROP_PROCEDURE;
- lex->drop_if_exists= $3;
- lex->spname= $4;
- }
- | DROP USER clear_privileges user_list
- {
- Lex->sql_command = SQLCOM_DROP_USER;
- }
- | DROP VIEW_SYM if_exists table_list opt_restrict
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_DROP_VIEW;
- lex->drop_if_exists= $3;
- }
+ DROP opt_temporary table_or_tables if_exists table_list opt_restrict
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_DROP_TABLE;
+ lex->drop_temporary= $2;
+ lex->drop_if_exists= $4;
+ }
+ | DROP INDEX_SYM ident ON table_ident {}
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_DROP_INDEX;
+ lex->alter_info.reset();
+ lex->alter_info.flags= ALTER_DROP_INDEX;
+ lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
+ $3.str));
+ if (!lex->current_select->add_table_to_list(lex->thd, $5, NULL,
+ TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
+ }
+ | DROP DATABASE if_exists ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_DROP_DB;
+ lex->drop_if_exists=$3;
+ lex->name= $4;
+ }
+ | DROP FUNCTION_SYM if_exists sp_name
+ {
+ LEX *lex=Lex;
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_DROP_FUNCTION;
+ lex->drop_if_exists= $3;
+ lex->spname= $4;
+ }
+ | DROP PROCEDURE if_exists sp_name
+ {
+ LEX *lex=Lex;
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_DROP_PROCEDURE;
+ lex->drop_if_exists= $3;
+ lex->spname= $4;
+ }
+ | DROP USER clear_privileges user_list
+ {
+ Lex->sql_command = SQLCOM_DROP_USER;
+ }
+ | DROP VIEW_SYM if_exists table_list opt_restrict
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_DROP_VIEW;
+ lex->drop_if_exists= $3;
+ }
| DROP EVENT_SYM if_exists sp_name
{
Lex->drop_if_exists= $3;
@@ -8232,7 +8612,7 @@ drop:
lex->sql_command= SQLCOM_DROP_TRIGGER;
lex->drop_if_exists= $3;
lex->spname= $4;
- }
+ }
| DROP TABLESPACE tablespace_name opt_ts_engine opt_ts_wait
{
LEX *lex= Lex;
@@ -8242,79 +8622,81 @@ drop:
{
LEX *lex= Lex;
lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
- }
+ }
| DROP SERVER_SYM if_exists ident_or_text
- {
- Lex->sql_command = SQLCOM_DROP_SERVER;
- Lex->drop_if_exists= $3;
- Lex->server_options.server_name= $4.str;
- Lex->server_options.server_name_length= $4.length;
- }
- ;
+ {
+ Lex->sql_command = SQLCOM_DROP_SERVER;
+ Lex->drop_if_exists= $3;
+ Lex->server_options.server_name= $4.str;
+ Lex->server_options.server_name_length= $4.length;
+ }
+ ;
table_list:
- table_name
- | table_list ',' table_name;
+ table_name
+ | table_list ',' table_name
+ ;
table_name:
- table_ident
- {
- if (!Select->add_table_to_list(YYTHD, $1, NULL, TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- }
- ;
+ table_ident
+ {
+ if (!Select->add_table_to_list(YYTHD, $1, NULL, TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
+ }
+ ;
if_exists:
- /* empty */ { $$= 0; }
- | IF EXISTS { $$= 1; }
- ;
+ /* empty */ { $$= 0; }
+ | IF EXISTS { $$= 1; }
+ ;
opt_temporary:
- /* empty */ { $$= 0; }
- | TEMPORARY { $$= 1; }
- ;
+ /* empty */ { $$= 0; }
+ | TEMPORARY { $$= 1; }
+ ;
/*
** Insert : add new data to table
*/
insert:
- INSERT
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_INSERT;
- lex->duplicates= DUP_ERROR;
- mysql_init_select(lex);
- /* for subselects */
- lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
- } insert_lock_option
- opt_ignore insert2
- {
- Select->set_lock_for_tables($3);
- Lex->current_select= &Lex->select_lex;
- }
- insert_field_spec opt_insert_update
- {}
- ;
+ INSERT
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_INSERT;
+ lex->duplicates= DUP_ERROR;
+ mysql_init_select(lex);
+ /* for subselects */
+ lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
+ }
+ insert_lock_option
+ opt_ignore insert2
+ {
+ Select->set_lock_for_tables($3);
+ Lex->current_select= &Lex->select_lex;
+ }
+ insert_field_spec opt_insert_update
+ {}
+ ;
replace:
- REPLACE
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_REPLACE;
- lex->duplicates= DUP_REPLACE;
- mysql_init_select(lex);
- }
- replace_lock_option insert2
- {
- Select->set_lock_for_tables($3);
- Lex->current_select= &Lex->select_lex;
- }
- insert_field_spec
- {}
- ;
+ REPLACE
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_REPLACE;
+ lex->duplicates= DUP_REPLACE;
+ mysql_init_select(lex);
+ }
+ replace_lock_option insert2
+ {
+ Select->set_lock_for_tables($3);
+ Lex->current_select= &Lex->select_lex;
+ }
+ insert_field_spec
+ {}
+ ;
insert_lock_option:
- /* empty */
+ /* empty */
{
#ifdef HAVE_QUERY_CACHE
/*
@@ -8327,298 +8709,321 @@ insert_lock_option:
$$= TL_WRITE_CONCURRENT_INSERT;
#endif
}
- | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; }
- | DELAYED_SYM { $$= TL_WRITE_DELAYED; }
- | HIGH_PRIORITY { $$= TL_WRITE; }
- ;
+ | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; }
+ | DELAYED_SYM { $$= TL_WRITE_DELAYED; }
+ | HIGH_PRIORITY { $$= TL_WRITE; }
+ ;
replace_lock_option:
- opt_low_priority { $$= $1; }
- | DELAYED_SYM { $$= TL_WRITE_DELAYED; };
+ opt_low_priority { $$= $1; }
+ | DELAYED_SYM { $$= TL_WRITE_DELAYED; }
+ ;
insert2:
- INTO insert_table {}
- | insert_table {};
+ INTO insert_table {}
+ | insert_table {}
+ ;
insert_table:
- table_name
- {
- LEX *lex=Lex;
- lex->field_list.empty();
- lex->many_values.empty();
- lex->insert_list=0;
- };
+ table_name
+ {
+ LEX *lex=Lex;
+ lex->field_list.empty();
+ lex->many_values.empty();
+ lex->insert_list=0;
+ };
insert_field_spec:
- insert_values {}
- | '(' ')' insert_values {}
- | '(' fields ')' insert_values {}
- | SET
- {
- LEX *lex=Lex;
- if (!(lex->insert_list = new List_item) ||
- lex->many_values.push_back(lex->insert_list))
- MYSQL_YYABORT;
- }
- ident_eq_list;
+ insert_values {}
+ | '(' ')' insert_values {}
+ | '(' fields ')' insert_values {}
+ | SET
+ {
+ LEX *lex=Lex;
+ if (!(lex->insert_list = new List_item) ||
+ lex->many_values.push_back(lex->insert_list))
+ MYSQL_YYABORT;
+ }
+ ident_eq_list
+ ;
fields:
- fields ',' insert_ident { Lex->field_list.push_back($3); }
- | insert_ident { Lex->field_list.push_back($1); };
+ fields ',' insert_ident { Lex->field_list.push_back($3); }
+ | insert_ident { Lex->field_list.push_back($1); }
+ ;
insert_values:
- VALUES values_list {}
- | VALUE_SYM values_list {}
- | create_select { Select->set_braces(0);} union_clause {}
- | '(' create_select ')' { Select->set_braces(1);} union_opt {}
+ VALUES values_list {}
+ | VALUE_SYM values_list {}
+ | create_select
+ { Select->set_braces(0);}
+ union_clause {}
+ | '(' create_select ')'
+ { Select->set_braces(1);}
+ union_opt {}
;
values_list:
- values_list ',' no_braces
- | no_braces;
+ values_list ',' no_braces
+ | no_braces
+ ;
ident_eq_list:
- ident_eq_list ',' ident_eq_value
- |
- ident_eq_value;
+ ident_eq_list ',' ident_eq_value
+ | ident_eq_value
+ ;
ident_eq_value:
- simple_ident_nospvar equal expr_or_default
- {
- LEX *lex=Lex;
- if (lex->field_list.push_back($1) ||
- lex->insert_list->push_back($3))
- MYSQL_YYABORT;
- };
-
-equal: EQ {}
- | SET_VAR {}
- ;
+ simple_ident_nospvar equal expr_or_default
+ {
+ LEX *lex=Lex;
+ if (lex->field_list.push_back($1) ||
+ lex->insert_list->push_back($3))
+ MYSQL_YYABORT;
+ }
+ ;
+
+equal:
+ EQ {}
+ | SET_VAR {}
+ ;
opt_equal:
- /* empty */ {}
- | equal {}
- ;
+ /* empty */ {}
+ | equal {}
+ ;
no_braces:
- '('
- {
- if (!(Lex->insert_list = new List_item))
- MYSQL_YYABORT;
- }
- opt_values ')'
- {
- LEX *lex=Lex;
- if (lex->many_values.push_back(lex->insert_list))
- MYSQL_YYABORT;
- };
+ '('
+ {
+ if (!(Lex->insert_list = new List_item))
+ MYSQL_YYABORT;
+ }
+ opt_values ')'
+ {
+ LEX *lex=Lex;
+ if (lex->many_values.push_back(lex->insert_list))
+ MYSQL_YYABORT;
+ }
+ ;
opt_values:
- /* empty */ {}
- | values;
+ /* empty */ {}
+ | values
+ ;
values:
- values ',' expr_or_default
- {
- if (Lex->insert_list->push_back($3))
- MYSQL_YYABORT;
- }
- | expr_or_default
- {
- if (Lex->insert_list->push_back($1))
- MYSQL_YYABORT;
- }
- ;
+ values ',' expr_or_default
+ {
+ if (Lex->insert_list->push_back($3))
+ MYSQL_YYABORT;
+ }
+ | expr_or_default
+ {
+ if (Lex->insert_list->push_back($1))
+ MYSQL_YYABORT;
+ }
+ ;
expr_or_default:
- expr { $$= $1;}
- | DEFAULT {$$= new Item_default_value(Lex->current_context()); }
- ;
+ expr { $$= $1;}
+ | DEFAULT {$$= new Item_default_value(Lex->current_context()); }
+ ;
opt_insert_update:
- /* empty */
- | ON DUPLICATE_SYM { Lex->duplicates= DUP_UPDATE; }
+ /* empty */
+ | ON DUPLICATE_SYM { Lex->duplicates= DUP_UPDATE; }
KEY_SYM UPDATE_SYM insert_update_list
;
/* Update rows in a table */
update:
- UPDATE_SYM
- {
- LEX *lex= Lex;
- mysql_init_select(lex);
- lex->sql_command= SQLCOM_UPDATE;
- lex->lock_option= TL_UNLOCK; /* Will be set later */
- lex->duplicates= DUP_ERROR;
- }
- opt_low_priority opt_ignore join_table_list
- SET update_list
- {
- LEX *lex= Lex;
- if (lex->select_lex.table_list.elements > 1)
- lex->sql_command= SQLCOM_UPDATE_MULTI;
- else if (lex->select_lex.get_table_list()->derived)
- {
- /* it is single table update and it is update of derived table */
- my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
- lex->select_lex.get_table_list()->alias, "UPDATE");
- MYSQL_YYABORT;
- }
- /*
- In case of multi-update setting write lock for all tables may
- be too pessimistic. We will decrease lock level if possible in
- mysql_multi_update().
- */
- Select->set_lock_for_tables($3);
- }
- where_clause opt_order_clause delete_limit_clause {}
- ;
+ UPDATE_SYM
+ {
+ LEX *lex= Lex;
+ mysql_init_select(lex);
+ lex->sql_command= SQLCOM_UPDATE;
+ lex->lock_option= TL_UNLOCK; /* Will be set later */
+ lex->duplicates= DUP_ERROR;
+ }
+ opt_low_priority opt_ignore join_table_list
+ SET update_list
+ {
+ LEX *lex= Lex;
+ if (lex->select_lex.table_list.elements > 1)
+ lex->sql_command= SQLCOM_UPDATE_MULTI;
+ else if (lex->select_lex.get_table_list()->derived)
+ {
+ /* it is single table update and it is update of derived table */
+ my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
+ lex->select_lex.get_table_list()->alias, "UPDATE");
+ MYSQL_YYABORT;
+ }
+ /*
+ In case of multi-update setting write lock for all tables may
+ be too pessimistic. We will decrease lock level if possible in
+ mysql_multi_update().
+ */
+ Select->set_lock_for_tables($3);
+ }
+ where_clause opt_order_clause delete_limit_clause {}
+ ;
update_list:
- update_list ',' update_elem
- | update_elem;
+ update_list ',' update_elem
+ | update_elem
+ ;
update_elem:
- simple_ident_nospvar equal expr_or_default
- {
- if (add_item_to_list(YYTHD, $1) || add_value_to_list(YYTHD, $3))
- MYSQL_YYABORT;
- };
+ simple_ident_nospvar equal expr_or_default
+ {
+ if (add_item_to_list(YYTHD, $1) || add_value_to_list(YYTHD, $3))
+ MYSQL_YYABORT;
+ }
+ ;
insert_update_list:
- insert_update_list ',' insert_update_elem
- | insert_update_elem;
+ insert_update_list ',' insert_update_elem
+ | insert_update_elem
+ ;
insert_update_elem:
- simple_ident_nospvar equal expr_or_default
- {
- LEX *lex= Lex;
- if (lex->update_list.push_back($1) ||
- lex->value_list.push_back($3))
- MYSQL_YYABORT;
- };
+ simple_ident_nospvar equal expr_or_default
+ {
+ LEX *lex= Lex;
+ if (lex->update_list.push_back($1) ||
+ lex->value_list.push_back($3))
+ MYSQL_YYABORT;
+ }
+ ;
opt_low_priority:
- /* empty */ { $$= TL_WRITE_DEFAULT; }
- | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; };
+ /* empty */ { $$= TL_WRITE_DEFAULT; }
+ | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; }
+ ;
/* Delete rows from a table */
delete:
- DELETE_SYM
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_DELETE;
- mysql_init_select(lex);
- lex->lock_option= TL_WRITE_DEFAULT;
- lex->ignore= 0;
- lex->select_lex.init_order();
- }
- opt_delete_options single_multi {}
- ;
+ DELETE_SYM
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_DELETE;
+ mysql_init_select(lex);
+ lex->lock_option= TL_WRITE_DEFAULT;
+ lex->ignore= 0;
+ lex->select_lex.init_order();
+ }
+ opt_delete_options single_multi {}
+ ;
single_multi:
- FROM table_ident
- {
- if (!Select->add_table_to_list(YYTHD, $2, NULL, TL_OPTION_UPDATING,
- Lex->lock_option))
- MYSQL_YYABORT;
- }
- where_clause opt_order_clause
- delete_limit_clause {}
- | table_wild_list
- { mysql_init_multi_delete(Lex); }
+ FROM table_ident
+ {
+ if (!Select->add_table_to_list(YYTHD, $2, NULL, TL_OPTION_UPDATING,
+ Lex->lock_option))
+ MYSQL_YYABORT;
+ }
+ where_clause opt_order_clause
+ delete_limit_clause {}
+ | table_wild_list
+ { mysql_init_multi_delete(Lex); }
FROM join_table_list where_clause
{
if (multi_delete_set_locks_and_link_aux_tables(Lex))
MYSQL_YYABORT;
}
- | FROM table_wild_list
- { mysql_init_multi_delete(Lex); }
- USING join_table_list where_clause
+ | FROM table_wild_list
+ { mysql_init_multi_delete(Lex); }
+ USING join_table_list where_clause
{
if (multi_delete_set_locks_and_link_aux_tables(Lex))
MYSQL_YYABORT;
}
- ;
+ ;
table_wild_list:
- table_wild_one {}
- | table_wild_list ',' table_wild_one {};
+ table_wild_one {}
+ | table_wild_list ',' table_wild_one {}
+ ;
table_wild_one:
- ident opt_wild opt_table_alias
- {
- if (!Select->add_table_to_list(YYTHD, new Table_ident($1), $3,
- TL_OPTION_UPDATING |
- TL_OPTION_ALIAS, Lex->lock_option))
- MYSQL_YYABORT;
- }
- | ident '.' ident opt_wild opt_table_alias
- {
- if (!Select->add_table_to_list(YYTHD,
- new Table_ident(YYTHD, $1, $3, 0),
- $5,
- TL_OPTION_UPDATING |
- TL_OPTION_ALIAS,
- Lex->lock_option))
- MYSQL_YYABORT;
- }
- ;
+ ident opt_wild opt_table_alias
+ {
+ if (!Select->add_table_to_list(YYTHD, new Table_ident($1),
+ $3,
+ TL_OPTION_UPDATING | TL_OPTION_ALIAS,
+ Lex->lock_option))
+ MYSQL_YYABORT;
+ }
+ | ident '.' ident opt_wild opt_table_alias
+ {
+ if (!Select->add_table_to_list(YYTHD,
+ new Table_ident(YYTHD, $1, $3, 0),
+ $5,
+ TL_OPTION_UPDATING | TL_OPTION_ALIAS,
+ Lex->lock_option))
+ MYSQL_YYABORT;
+ }
+ ;
opt_wild:
- /* empty */ {}
- | '.' '*' {};
-
+ /* empty */ {}
+ | '.' '*' {}
+ ;
opt_delete_options:
- /* empty */ {}
- | opt_delete_option opt_delete_options {};
+ /* empty */ {}
+ | opt_delete_option opt_delete_options {}
+ ;
opt_delete_option:
- QUICK { Select->options|= OPTION_QUICK; }
- | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
- | IGNORE_SYM { Lex->ignore= 1; };
+ QUICK { Select->options|= OPTION_QUICK; }
+ | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
+ | IGNORE_SYM { Lex->ignore= 1; }
+ ;
truncate:
- TRUNCATE_SYM opt_table_sym table_name
- {
- LEX* lex= Lex;
- lex->sql_command= SQLCOM_TRUNCATE;
- lex->select_lex.options= 0;
- lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
- lex->select_lex.init_order();
- }
- ;
+ TRUNCATE_SYM opt_table_sym table_name
+ {
+ LEX* lex= Lex;
+ lex->sql_command= SQLCOM_TRUNCATE;
+ lex->select_lex.options= 0;
+ lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
+ lex->select_lex.init_order();
+ }
+ ;
opt_table_sym:
- /* empty */
- | TABLE_SYM;
+ /* empty */
+ | TABLE_SYM
+ ;
/* Show things */
-show: SHOW
- {
- LEX *lex=Lex;
- lex->wild=0;
- lex->lock_option= TL_READ;
- mysql_init_select(lex);
- lex->current_select->parsing_place= SELECT_LIST;
- bzero((char*) &lex->create_info,sizeof(lex->create_info));
- }
- show_param
- {}
- ;
+show:
+ SHOW
+ {
+ LEX *lex=Lex;
+ lex->wild=0;
+ lex->lock_option= TL_READ;
+ mysql_init_select(lex);
+ lex->current_select->parsing_place= SELECT_LIST;
+ bzero((char*) &lex->create_info,sizeof(lex->create_info));
+ }
+ show_param
+ {}
+ ;
show_param:
- DATABASES wild_and_where
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_SHOW_DATABASES;
- if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
- MYSQL_YYABORT;
- }
+ DATABASES wild_and_where
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_SHOW_DATABASES;
+ if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
+ MYSQL_YYABORT;
+ }
| opt_full TABLES opt_db wild_and_where
{
LEX *lex= Lex;
@@ -8652,112 +9057,115 @@ show_param:
MYSQL_YYABORT;
}
| OPEN_SYM TABLES opt_db wild_and_where
- {
- LEX *lex= Lex;
+ {
+ LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
- lex->select_lex.db= $3;
+ lex->select_lex.db= $3;
if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
MYSQL_YYABORT;
- }
+ }
| opt_full PLUGIN_SYM
- {
- LEX *lex= Lex;
- WARN_DEPRECATED(yythd, "5.2", "SHOW PLUGIN", "'SHOW PLUGINS'");
+ {
+ LEX *lex= Lex;
+ WARN_DEPRECATED(yythd, "5.2", "SHOW PLUGIN", "'SHOW PLUGINS'");
lex->sql_command= SQLCOM_SHOW_PLUGINS;
if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
MYSQL_YYABORT;
- }
+ }
| PLUGINS_SYM
- {
- LEX *lex= Lex;
+ {
+ LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_PLUGINS;
if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
MYSQL_YYABORT;
- }
- | ENGINE_SYM known_storage_engines show_engine_param
- { Lex->create_info.db_type= $2; }
- | ENGINE_SYM ALL show_engine_param
- { Lex->create_info.db_type= NULL; }
- | opt_full COLUMNS from_or_in table_ident opt_db wild_and_where
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_SHOW_FIELDS;
- if ($5)
- $4->change_db($5);
- if (prepare_schema_table(YYTHD, lex, $4, SCH_COLUMNS))
- MYSQL_YYABORT;
- }
- | NEW_SYM MASTER_SYM FOR_SYM SLAVE WITH MASTER_LOG_FILE_SYM EQ
- TEXT_STRING_sys AND_SYM MASTER_LOG_POS_SYM EQ ulonglong_num
- AND_SYM MASTER_SERVER_ID_SYM EQ
- ulong_num
- {
- Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
- Lex->mi.log_file_name = $8.str;
- Lex->mi.pos = $12;
- Lex->mi.server_id = $16;
+ }
+ | ENGINE_SYM known_storage_engines show_engine_param
+ { Lex->create_info.db_type= $2; }
+ | ENGINE_SYM ALL show_engine_param
+ { Lex->create_info.db_type= NULL; }
+ | opt_full COLUMNS from_or_in table_ident opt_db wild_and_where
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_SHOW_FIELDS;
+ if ($5)
+ $4->change_db($5);
+ if (prepare_schema_table(YYTHD, lex, $4, SCH_COLUMNS))
+ MYSQL_YYABORT;
+ }
+ | NEW_SYM MASTER_SYM FOR_SYM SLAVE
+ WITH MASTER_LOG_FILE_SYM EQ
+ TEXT_STRING_sys /* $8 */
+ AND_SYM MASTER_LOG_POS_SYM EQ
+ ulonglong_num /* $12 */
+ AND_SYM MASTER_SERVER_ID_SYM EQ
+ ulong_num /* $16 */
+ {
+ Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
+ Lex->mi.log_file_name = $8.str;
+ Lex->mi.pos = $12;
+ Lex->mi.server_id = $16;
}
| master_or_binary LOGS_SYM
{
- Lex->sql_command = SQLCOM_SHOW_BINLOGS;
+ Lex->sql_command = SQLCOM_SHOW_BINLOGS;
}
| SLAVE HOSTS_SYM
{
- Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
+ Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
}
| BINLOG_SYM EVENTS_SYM binlog_in binlog_from
{
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
} opt_limit_clause_init
| keys_or_index from_or_in table_ident opt_db where_clause
{
LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_KEYS;
- if ($4)
- $3->change_db($4);
+ if ($4)
+ $3->change_db($4);
if (prepare_schema_table(YYTHD, lex, $3, SCH_STATISTICS))
MYSQL_YYABORT;
- }
- | COLUMN_SYM TYPES_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
- }
- | TABLE_SYM TYPES_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
- WARN_DEPRECATED(yythd, "5.2", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'");
+ }
+ | COLUMN_SYM TYPES_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
+ }
+ | TABLE_SYM TYPES_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
+ WARN_DEPRECATED(yythd, "5.2", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'");
if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
MYSQL_YYABORT;
- }
- | opt_storage ENGINES_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
+ }
+ | opt_storage ENGINES_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
MYSQL_YYABORT;
- }
- | AUTHORS_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_AUTHORS;
- }
- | CONTRIBUTORS_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
- }
- | PRIVILEGES
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
- }
+ }
+ | AUTHORS_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_AUTHORS;
+ }
+ | CONTRIBUTORS_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
+ }
+ | PRIVILEGES
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
+ }
| COUNT_SYM '(' '*' ')' WARNINGS
{ (void) create_select_for_variable("warning_count"); }
| COUNT_SYM '(' '*' ')' ERRORS
- { (void) create_select_for_variable("error_count"); }
+ { (void) create_select_for_variable("error_count"); }
| WARNINGS opt_limit_clause_init
{ Lex->sql_command = SQLCOM_SHOW_WARNS;}
| ERRORS opt_limit_clause_init
@@ -8769,7 +9177,7 @@ show_param:
lex->option_type= $1;
if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
MYSQL_YYABORT;
- }
+ }
| INNOBASE_SYM STATUS_SYM
{
LEX *lex= Lex;
@@ -8777,33 +9185,33 @@ show_param:
if (!(lex->create_info.db_type=
ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
{
- my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
- MYSQL_YYABORT;
+ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
+ MYSQL_YYABORT;
}
WARN_DEPRECATED(yythd, "5.2", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'");
- }
+ }
| MUTEX_SYM STATUS_SYM
{
- LEX *lex= Lex;
+ LEX *lex= Lex;
lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX;
if (!(lex->create_info.db_type=
ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB)))
{
- my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
- MYSQL_YYABORT;
+ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB");
+ MYSQL_YYABORT;
}
WARN_DEPRECATED(yythd, "5.2", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'");
- }
- | opt_full PROCESSLIST_SYM
- { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
+ }
+ | opt_full PROCESSLIST_SYM
+ { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
| opt_var_type VARIABLES wild_and_where
- {
+ {
LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_VARIABLES;
lex->option_type= $1;
if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
MYSQL_YYABORT;
- }
+ }
| charset wild_and_where
{
LEX *lex= Lex;
@@ -8818,92 +9226,92 @@ show_param:
if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS))
MYSQL_YYABORT;
}
- | GRANTS
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_GRANTS;
- LEX_USER *curr_user;
+ | GRANTS
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_GRANTS;
+ LEX_USER *curr_user;
if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
MYSQL_YYABORT;
bzero(curr_user, sizeof(st_lex_user));
- lex->grant_user= curr_user;
- }
- | GRANTS FOR_SYM user
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SHOW_GRANTS;
- lex->grant_user=$3;
- lex->grant_user->password=null_lex_str;
- }
- | CREATE DATABASE opt_if_not_exists ident
- {
- Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
- Lex->create_info.options=$3;
- Lex->name= $4;
- }
+ lex->grant_user= curr_user;
+ }
+ | GRANTS FOR_SYM user
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SHOW_GRANTS;
+ lex->grant_user=$3;
+ lex->grant_user->password=null_lex_str;
+ }
+ | CREATE DATABASE opt_if_not_exists ident
+ {
+ Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
+ Lex->create_info.options=$3;
+ Lex->name= $4;
+ }
| CREATE TABLE_SYM table_ident
{
LEX *lex= Lex;
- lex->sql_command = SQLCOM_SHOW_CREATE;
- if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0))
- MYSQL_YYABORT;
+ lex->sql_command = SQLCOM_SHOW_CREATE;
+ if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL,0))
+ MYSQL_YYABORT;
lex->only_view= 0;
- lex->create_info.storage_media= HA_SM_DEFAULT;
- }
+ lex->create_info.storage_media= HA_SM_DEFAULT;
+ }
| CREATE VIEW_SYM table_ident
{
LEX *lex= Lex;
- lex->sql_command = SQLCOM_SHOW_CREATE;
- if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL, 0))
- MYSQL_YYABORT;
+ lex->sql_command = SQLCOM_SHOW_CREATE;
+ if (!lex->select_lex.add_table_to_list(YYTHD, $3, NULL, 0))
+ MYSQL_YYABORT;
lex->only_view= 1;
- }
+ }
| MASTER_SYM STATUS_SYM
{
- Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
+ Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
}
| SLAVE STATUS_SYM
{
- Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
- }
- | CREATE PROCEDURE sp_name
- {
- LEX *lex= Lex;
-
- lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
- lex->spname= $3;
- }
- | CREATE FUNCTION_SYM sp_name
- {
- LEX *lex= Lex;
-
- lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
- lex->spname= $3;
- }
- | CREATE TRIGGER_SYM sp_name
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
- lex->spname= $3;
- }
- | PROCEDURE STATUS_SYM wild_and_where
- {
+ Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
+ }
+ | CREATE PROCEDURE sp_name
+ {
+ LEX *lex= Lex;
+
+ lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
+ lex->spname= $3;
+ }
+ | CREATE FUNCTION_SYM sp_name
+ {
+ LEX *lex= Lex;
+
+ lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
+ lex->spname= $3;
+ }
+ | CREATE TRIGGER_SYM sp_name
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
+ lex->spname= $3;
+ }
+ | PROCEDURE STATUS_SYM wild_and_where
+ {
LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
- if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
- MYSQL_YYABORT;
+ if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
+ MYSQL_YYABORT;
if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
MYSQL_YYABORT;
- }
- | FUNCTION_SYM STATUS_SYM wild_and_where
- {
+ }
+ | FUNCTION_SYM STATUS_SYM wild_and_where
+ {
LEX *lex= Lex;
lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
- if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
- MYSQL_YYABORT;
+ if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
+ MYSQL_YYABORT;
if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
MYSQL_YYABORT;
- }
+ }
| PROCEDURE CODE_SYM sp_name
{
#ifdef DBUG_OFF
@@ -8911,7 +9319,7 @@ show_param:
MYSQL_YYABORT;
#else
Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
- Lex->spname= $3;
+ Lex->spname= $3;
#endif
}
| FUNCTION_SYM CODE_SYM sp_name
@@ -8921,7 +9329,7 @@ show_param:
MYSQL_YYABORT;
#else
Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
- Lex->spname= $3;
+ Lex->spname= $3;
#endif
}
| CREATE EVENT_SYM sp_name
@@ -8929,290 +9337,328 @@ show_param:
Lex->spname= $3;
Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
}
- ;
+ ;
show_engine_param:
- STATUS_SYM
- { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
- | MUTEX_SYM
- { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
- | LOGS_SYM
- { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; };
+ STATUS_SYM
+ { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
+ | MUTEX_SYM
+ { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
+ | LOGS_SYM
+ { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
+ ;
master_or_binary:
- MASTER_SYM
- | BINARY;
+ MASTER_SYM
+ | BINARY
+ ;
opt_storage:
- /* empty */
- | STORAGE_SYM;
+ /* empty */
+ | STORAGE_SYM
+ ;
opt_db:
- /* empty */ { $$= 0; }
- | from_or_in ident { $$= $2.str; };
+ /* empty */ { $$= 0; }
+ | from_or_in ident { $$= $2.str; }
+ ;
opt_full:
- /* empty */ { Lex->verbose=0; }
- | FULL { Lex->verbose=1; };
+ /* empty */ { Lex->verbose=0; }
+ | FULL { Lex->verbose=1; }
+ ;
from_or_in:
- FROM
- | IN_SYM;
+ FROM
+ | IN_SYM
+ ;
binlog_in:
- /* empty */ { Lex->mi.log_file_name = 0; }
- | IN_SYM TEXT_STRING_sys { Lex->mi.log_file_name = $2.str; };
+ /* empty */ { Lex->mi.log_file_name = 0; }
+ | IN_SYM TEXT_STRING_sys { Lex->mi.log_file_name = $2.str; }
+ ;
binlog_from:
- /* empty */ { Lex->mi.pos = 4; /* skip magic number */ }
- | FROM ulonglong_num { Lex->mi.pos = $2; };
+ /* empty */ { Lex->mi.pos = 4; /* skip magic number */ }
+ | FROM ulonglong_num { Lex->mi.pos = $2; }
+ ;
wild_and_where:
- /* empty */
- | LIKE TEXT_STRING_sys
- { Lex->wild= new (YYTHD->mem_root) String($2.str, $2.length,
- system_charset_info); }
- | WHERE expr
- {
- Select->where= $2;
- if ($2)
- $2->top_level_item();
- }
- ;
-
+ /* empty */
+ | LIKE TEXT_STRING_sys
+ {
+ Lex->wild= new (YYTHD->mem_root) String($2.str, $2.length,
+ system_charset_info);
+ }
+ | WHERE expr
+ {
+ Select->where= $2;
+ if ($2)
+ $2->top_level_item();
+ }
+ ;
/* A Oracle compatible synonym for show */
describe:
- describe_command table_ident
- {
- LEX *lex= Lex;
- lex->lock_option= TL_READ;
- mysql_init_select(lex);
- lex->current_select->parsing_place= SELECT_LIST;
- lex->sql_command= SQLCOM_SHOW_FIELDS;
- lex->select_lex.db= 0;
- lex->verbose= 0;
- if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS))
- MYSQL_YYABORT;
- }
- opt_describe_column {}
- | describe_command opt_extended_describe
- { Lex->describe|= DESCRIBE_NORMAL; }
- select
- {
- LEX *lex=Lex;
- lex->select_lex.options|= SELECT_DESCRIBE;
- }
- ;
+ describe_command table_ident
+ {
+ LEX *lex= Lex;
+ lex->lock_option= TL_READ;
+ mysql_init_select(lex);
+ lex->current_select->parsing_place= SELECT_LIST;
+ lex->sql_command= SQLCOM_SHOW_FIELDS;
+ lex->select_lex.db= 0;
+ lex->verbose= 0;
+ if (prepare_schema_table(YYTHD, lex, $2, SCH_COLUMNS))
+ MYSQL_YYABORT;
+ }
+ opt_describe_column {}
+ | describe_command opt_extended_describe
+ { Lex->describe|= DESCRIBE_NORMAL; }
+ select
+ {
+ LEX *lex=Lex;
+ lex->select_lex.options|= SELECT_DESCRIBE;
+ }
+ ;
describe_command:
- DESC
- | DESCRIBE;
+ DESC
+ | DESCRIBE
+ ;
opt_extended_describe:
- /* empty */ {}
- | EXTENDED_SYM { Lex->describe|= DESCRIBE_EXTENDED; }
- | PARTITIONS_SYM { Lex->describe|= DESCRIBE_PARTITIONS; }
- ;
-
+ /* empty */ {}
+ | EXTENDED_SYM { Lex->describe|= DESCRIBE_EXTENDED; }
+ | PARTITIONS_SYM { Lex->describe|= DESCRIBE_PARTITIONS; }
+ ;
opt_describe_column:
- /* empty */ {}
- | text_string { Lex->wild= $1; }
- | ident
- { Lex->wild= new (YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info); };
+ /* empty */ {}
+ | text_string { Lex->wild= $1; }
+ | ident
+ {
+ Lex->wild= new (YYTHD->mem_root) String((const char*) $1.str,
+ $1.length,
+ system_charset_info);
+ }
+ ;
/* flush things */
flush:
- FLUSH_SYM opt_no_write_to_binlog
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_FLUSH;
- lex->type= 0;
- lex->no_write_to_binlog= $2;
- }
- flush_options
- {}
- ;
+ FLUSH_SYM opt_no_write_to_binlog
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_FLUSH;
+ lex->type= 0;
+ lex->no_write_to_binlog= $2;
+ }
+ flush_options
+ {}
+ ;
flush_options:
- flush_options ',' flush_option
- | flush_option;
+ flush_options ',' flush_option
+ | flush_option
+ ;
flush_option:
- table_or_tables { Lex->type|= REFRESH_TABLES; } opt_table_list {}
- | TABLES WITH READ_SYM LOCK_SYM { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
- | QUERY_SYM CACHE_SYM { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
- | HOSTS_SYM { Lex->type|= REFRESH_HOSTS; }
- | PRIVILEGES { Lex->type|= REFRESH_GRANT; }
- | LOGS_SYM { Lex->type|= REFRESH_LOG; }
- | STATUS_SYM { Lex->type|= REFRESH_STATUS; }
- | SLAVE { Lex->type|= REFRESH_SLAVE; }
- | MASTER_SYM { Lex->type|= REFRESH_MASTER; }
- | DES_KEY_FILE { Lex->type|= REFRESH_DES_KEY_FILE; }
- | RESOURCES { Lex->type|= REFRESH_USER_RESOURCES; };
+ table_or_tables
+ { Lex->type|= REFRESH_TABLES; }
+ opt_table_list {}
+ | TABLES WITH READ_SYM LOCK_SYM
+ { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
+ | QUERY_SYM CACHE_SYM
+ { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
+ | HOSTS_SYM
+ { Lex->type|= REFRESH_HOSTS; }
+ | PRIVILEGES
+ { Lex->type|= REFRESH_GRANT; }
+ | LOGS_SYM
+ { Lex->type|= REFRESH_LOG; }
+ | STATUS_SYM
+ { Lex->type|= REFRESH_STATUS; }
+ | SLAVE
+ { Lex->type|= REFRESH_SLAVE; }
+ | MASTER_SYM
+ { Lex->type|= REFRESH_MASTER; }
+ | DES_KEY_FILE
+ { Lex->type|= REFRESH_DES_KEY_FILE; }
+ | RESOURCES
+ { Lex->type|= REFRESH_USER_RESOURCES; }
+ ;
opt_table_list:
- /* empty */ {;}
- | table_list {;};
+ /* empty */ {}
+ | table_list {}
+ ;
reset:
- RESET_SYM
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_RESET; lex->type=0;
- } reset_options
- {}
- ;
+ RESET_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_RESET; lex->type=0;
+ }
+ reset_options
+ {}
+ ;
reset_options:
- reset_options ',' reset_option
- | reset_option;
+ reset_options ',' reset_option
+ | reset_option
+ ;
reset_option:
- SLAVE { Lex->type|= REFRESH_SLAVE; }
+ SLAVE { Lex->type|= REFRESH_SLAVE; }
| MASTER_SYM { Lex->type|= REFRESH_MASTER; }
- | QUERY_SYM CACHE_SYM { Lex->type|= REFRESH_QUERY_CACHE;};
+ | QUERY_SYM CACHE_SYM { Lex->type|= REFRESH_QUERY_CACHE;}
+ ;
purge:
- PURGE
- {
- LEX *lex=Lex;
- lex->type=0;
- lex->sql_command = SQLCOM_PURGE;
- } purge_options
- {}
- ;
+ PURGE
+ {
+ LEX *lex=Lex;
+ lex->type=0;
+ lex->sql_command = SQLCOM_PURGE;
+ }
+ purge_options
+ {}
+ ;
purge_options:
- master_or_binary LOGS_SYM purge_option
- ;
+ master_or_binary LOGS_SYM purge_option
+ ;
purge_option:
- TO_SYM TEXT_STRING_sys
- {
- Lex->to_log = $2.str;
- }
- | BEFORE_SYM expr
- {
- LEX *lex= Lex;
- lex->value_list.empty();
- lex->value_list.push_front($2);
- lex->sql_command= SQLCOM_PURGE_BEFORE;
- }
- ;
+ TO_SYM TEXT_STRING_sys
+ {
+ Lex->to_log = $2.str;
+ }
+ | BEFORE_SYM expr
+ {
+ LEX *lex= Lex;
+ lex->value_list.empty();
+ lex->value_list.push_front($2);
+ lex->sql_command= SQLCOM_PURGE_BEFORE;
+ }
+ ;
/* kill threads */
kill:
- KILL_SYM kill_option expr
- {
- LEX *lex=Lex;
- lex->value_list.empty();
- lex->value_list.push_front($3);
- lex->sql_command= SQLCOM_KILL;
- };
+ KILL_SYM kill_option expr
+ {
+ LEX *lex=Lex;
+ lex->value_list.empty();
+ lex->value_list.push_front($3);
+ lex->sql_command= SQLCOM_KILL;
+ }
+ ;
kill_option:
- /* empty */ { Lex->type= 0; }
- | CONNECTION_SYM { Lex->type= 0; }
- | QUERY_SYM { Lex->type= ONLY_KILL_QUERY; }
+ /* empty */ { Lex->type= 0; }
+ | CONNECTION_SYM { Lex->type= 0; }
+ | QUERY_SYM { Lex->type= ONLY_KILL_QUERY; }
;
/* change database */
-use: USE_SYM ident
- {
- LEX *lex=Lex;
- lex->sql_command=SQLCOM_CHANGE_DB;
- lex->select_lex.db= $2.str;
- };
+use:
+ USE_SYM ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command=SQLCOM_CHANGE_DB;
+ lex->select_lex.db= $2.str;
+ }
+ ;
/* import, export of files */
-load: LOAD DATA_SYM
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
- MYSQL_YYABORT;
- }
- lex->fname_start= lip->get_ptr();
- }
- load_data
- {}
- |
- LOAD TABLE_SYM table_ident FROM MASTER_SYM
- {
- LEX *lex=Lex;
- WARN_DEPRECATED(yythd, "5.2", "LOAD TABLE FROM MASTER",
- "MySQL Administrator (mysqldump, mysql)");
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
- if (!Select->add_table_to_list(YYTHD, $3, NULL, TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- };
+load:
+ LOAD DATA_SYM
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
+ MYSQL_YYABORT;
+ }
+ lex->fname_start= lip->get_ptr();
+ }
+ load_data
+ {}
+ | LOAD TABLE_SYM table_ident FROM MASTER_SYM
+ {
+ LEX *lex=Lex;
+ WARN_DEPRECATED(yythd, "5.2", "LOAD TABLE FROM MASTER",
+ "MySQL Administrator (mysqldump, mysql)");
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
+ if (!Select->add_table_to_list(YYTHD, $3, NULL, TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
+ }
+ ;
load_data:
- load_data_lock opt_local INFILE TEXT_STRING_filesystem
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_LOAD;
- lex->lock_option= $1;
- lex->local_file= $2;
- lex->duplicates= DUP_ERROR;
- lex->ignore= 0;
- if (!(lex->exchange= new sql_exchange($4.str, 0)))
- MYSQL_YYABORT;
- }
- opt_duplicate INTO
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- lex->fname_end= lip->get_ptr();
- }
- TABLE_SYM table_ident
- {
- LEX *lex=Lex;
- if (!Select->add_table_to_list(YYTHD, $10, NULL, TL_OPTION_UPDATING,
- lex->lock_option))
- MYSQL_YYABORT;
- lex->field_list.empty();
- lex->update_list.empty();
- lex->value_list.empty();
- }
- opt_load_data_charset
- { Lex->exchange->cs= $12; }
- opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec
- opt_load_data_set_spec
- {}
- |
- FROM MASTER_SYM
- {
- Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
- WARN_DEPRECATED(yythd, "5.2", "LOAD DATA FROM MASTER",
- "mysqldump or future "
- "BACKUP/RESTORE DATABASE facility");
- };
+ load_data_lock opt_local INFILE TEXT_STRING_filesystem
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_LOAD;
+ lex->lock_option= $1;
+ lex->local_file= $2;
+ lex->duplicates= DUP_ERROR;
+ lex->ignore= 0;
+ if (!(lex->exchange= new sql_exchange($4.str, 0)))
+ MYSQL_YYABORT;
+ }
+ opt_duplicate INTO
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ lex->fname_end= lip->get_ptr();
+ }
+ TABLE_SYM table_ident
+ {
+ LEX *lex=Lex;
+ if (!Select->add_table_to_list(YYTHD, $10, NULL, TL_OPTION_UPDATING,
+ lex->lock_option))
+ MYSQL_YYABORT;
+ lex->field_list.empty();
+ lex->update_list.empty();
+ lex->value_list.empty();
+ }
+ opt_load_data_charset
+ { Lex->exchange->cs= $12; }
+ opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec
+ opt_load_data_set_spec
+ {}
+ | FROM MASTER_SYM
+ {
+ Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
+ WARN_DEPRECATED(yythd, "5.2", "LOAD DATA FROM MASTER",
+ "mysqldump or future "
+ "BACKUP/RESTORE DATABASE facility");
+ }
+ ;
opt_local:
- /* empty */ { $$=0;}
- | LOCAL_SYM { $$=1;};
+ /* empty */ { $$=0;}
+ | LOCAL_SYM { $$=1;}
+ ;
load_data_lock:
- /* empty */ { $$= TL_WRITE_DEFAULT; }
- | CONCURRENT
+ /* empty */ { $$= TL_WRITE_DEFAULT; }
+ | CONCURRENT
{
#ifdef HAVE_QUERY_CACHE
/*
@@ -9224,35 +9670,38 @@ load_data_lock:
#endif
$$= TL_WRITE_CONCURRENT_INSERT;
}
- | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; };
-
+ | LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; }
+ ;
opt_duplicate:
- /* empty */ { Lex->duplicates=DUP_ERROR; }
- | REPLACE { Lex->duplicates=DUP_REPLACE; }
- | IGNORE_SYM { Lex->ignore= 1; };
+ /* empty */ { Lex->duplicates=DUP_ERROR; }
+ | REPLACE { Lex->duplicates=DUP_REPLACE; }
+ | IGNORE_SYM { Lex->ignore= 1; }
+ ;
opt_field_term:
- /* empty */
- | COLUMNS field_term_list;
+ /* empty */
+ | COLUMNS field_term_list
+ ;
field_term_list:
- field_term_list field_term
- | field_term;
+ field_term_list field_term
+ | field_term
+ ;
field_term:
- TERMINATED BY text_string
+ TERMINATED BY text_string
{
DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->field_term= $3;
}
- | OPTIONALLY ENCLOSED BY text_string
- {
+ | OPTIONALLY ENCLOSED BY text_string
+ {
LEX *lex= Lex;
DBUG_ASSERT(lex->exchange != 0);
lex->exchange->enclosed= $4;
lex->exchange->opt_enclosed= 1;
- }
+ }
| ENCLOSED BY text_string
{
DBUG_ASSERT(Lex->exchange != 0);
@@ -9262,18 +9711,21 @@ field_term:
{
DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->escaped= $3;
- };
+ }
+ ;
opt_line_term:
- /* empty */
- | LINES line_term_list;
+ /* empty */
+ | LINES line_term_list
+ ;
line_term_list:
- line_term_list line_term
- | line_term;
+ line_term_list line_term
+ | line_term
+ ;
line_term:
- TERMINATED BY text_string
+ TERMINATED BY text_string
{
DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->line_term= $3;
@@ -9282,68 +9734,71 @@ line_term:
{
DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->line_start= $3;
- };
+ }
+ ;
opt_ignore_lines:
- /* empty */
+ /* empty */
| IGNORE_SYM NUM LINES
{
DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->skip_lines= atol($2.str);
- };
+ }
+ ;
opt_field_or_var_spec:
- /* empty */ { }
- | '(' fields_or_vars ')' { }
- | '(' ')' { };
+ /* empty */ {}
+ | '(' fields_or_vars ')' {}
+ | '(' ')' {}
+ ;
fields_or_vars:
- fields_or_vars ',' field_or_var
+ fields_or_vars ',' field_or_var
{ Lex->field_list.push_back($3); }
| field_or_var
{ Lex->field_list.push_back($1); }
;
field_or_var:
- simple_ident_nospvar {$$= $1;}
+ simple_ident_nospvar {$$= $1;}
| '@' ident_or_text
{ $$= new Item_user_var_as_out_param($2); }
;
opt_load_data_set_spec:
- /* empty */ { }
- | SET insert_update_list { };
-
+ /* empty */ {}
+ | SET insert_update_list {}
+ ;
/* Common definitions */
text_literal:
- TEXT_STRING
- {
- LEX_STRING tmp;
- THD *thd= YYTHD;
- CHARSET_INFO *cs_con= thd->variables.collation_connection;
- CHARSET_INFO *cs_cli= thd->variables.character_set_client;
- uint repertoire= thd->lex->text_string_is_7bit &&
+ TEXT_STRING
+ {
+ LEX_STRING tmp;
+ THD *thd= YYTHD;
+ CHARSET_INFO *cs_con= thd->variables.collation_connection;
+ CHARSET_INFO *cs_cli= thd->variables.character_set_client;
+ uint repertoire= thd->lex->text_string_is_7bit &&
my_charset_is_ascii_based(cs_cli) ?
- MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
- if (thd->charset_is_collation_connection ||
- (repertoire == MY_REPERTOIRE_ASCII &&
- my_charset_is_ascii_based(cs_con)))
- tmp= $1;
- else
- thd->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
- $$= new Item_string(tmp.str, tmp.length, cs_con,
- DERIVATION_COERCIBLE, repertoire);
- }
+ MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
+ if (thd->charset_is_collation_connection ||
+ (repertoire == MY_REPERTOIRE_ASCII &&
+ my_charset_is_ascii_based(cs_con)))
+ tmp= $1;
+ else
+ thd->convert_string(&tmp, cs_con, $1.str, $1.length, cs_cli);
+ $$= new Item_string(tmp.str, tmp.length, cs_con,
+ DERIVATION_COERCIBLE, repertoire);
+ }
| NCHAR_STRING
- {
- uint repertoire= Lex->text_string_is_7bit ?
- MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
- DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
- $$= new Item_string($1.str, $1.length, national_charset_info,
- DERIVATION_COERCIBLE, repertoire);
- }
+ {
+ uint repertoire= Lex->text_string_is_7bit ?
+ MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
+ DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
+ $$= new Item_string($1.str, $1.length, national_charset_info,
+ DERIVATION_COERCIBLE, repertoire);
+ }
| UNDERSCORE_CHARSET TEXT_STRING
{
$$= new Item_string($2.str, $2.length, $1);
@@ -9368,75 +9823,78 @@ text_literal:
;
text_string:
- TEXT_STRING_literal
- { $$= new (YYTHD->mem_root) String($1.str,$1.length,YYTHD->variables.collation_connection); }
- | HEX_NUM
- {
- Item *tmp= new Item_hex_string($1.str, $1.length);
- /*
- it is OK only emulate fix_fields, because we need only
+ TEXT_STRING_literal
+ {
+ $$= new (YYTHD->mem_root) String($1.str,
+ $1.length,
+ YYTHD->variables.collation_connection);
+ }
+ | HEX_NUM
+ {
+ Item *tmp= new Item_hex_string($1.str, $1.length);
+ /*
+ it is OK only emulate fix_fields, because we need only
value of constant
- */
- $$= tmp ?
- tmp->quick_fix_field(), tmp->val_str((String*) 0) :
- (String*) 0;
- }
+ */
+ $$= tmp ?
+ tmp->quick_fix_field(), tmp->val_str((String*) 0) :
+ (String*) 0;
+ }
| BIN_NUM
{
- Item *tmp= new Item_bin_string($1.str, $1.length);
- /*
- it is OK only emulate fix_fields, because we need only
+ Item *tmp= new Item_bin_string($1.str, $1.length);
+ /*
+ it is OK only emulate fix_fields, because we need only
value of constant
- */
- $$= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
- (String*) 0;
+ */
+ $$= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
+ (String*) 0;
}
- ;
+ ;
param_marker:
- PARAM_MARKER
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- Item_param *item;
- if (! lex->parsing_options.allows_variable)
- {
- my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
- MYSQL_YYABORT;
- }
- item= new Item_param((uint) (lip->get_tok_start() - thd->query));
- if (!($$= item) || lex->param_list.push_back(item))
+ PARAM_MARKER
{
- my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
- MYSQL_YYABORT;
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ Item_param *item;
+ if (! lex->parsing_options.allows_variable)
+ {
+ my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
+ MYSQL_YYABORT;
+ }
+ item= new Item_param((uint) (lip->get_tok_start() - thd->query));
+ if (!($$= item) || lex->param_list.push_back(item))
+ {
+ my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
+ MYSQL_YYABORT;
+ }
}
- }
- ;
+ ;
signed_literal:
- literal { $$ = $1; }
- | '+' NUM_literal { $$ = $2; }
- | '-' NUM_literal
- {
- $2->max_length++;
- $$= $2->neg();
- }
- ;
-
+ literal { $$ = $1; }
+ | '+' NUM_literal { $$ = $2; }
+ | '-' NUM_literal
+ {
+ $2->max_length++;
+ $$= $2->neg();
+ }
+ ;
literal:
- text_literal { $$ = $1; }
- | NUM_literal { $$ = $1; }
- | NULL_SYM
+ text_literal { $$ = $1; }
+ | NUM_literal { $$ = $1; }
+ | NULL_SYM
{
$$ = new Item_null();
YYTHD->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
}
- | FALSE_SYM { $$= new Item_int((char*) "FALSE",0,1); }
- | TRUE_SYM { $$= new Item_int((char*) "TRUE",1,1); }
- | HEX_NUM { $$ = new Item_hex_string($1.str, $1.length);}
- | BIN_NUM { $$= new Item_bin_string($1.str, $1.length); }
+ | FALSE_SYM { $$= new Item_int((char*) "FALSE",0,1); }
+ | TRUE_SYM { $$= new Item_int((char*) "TRUE",1,1); }
+ | HEX_NUM { $$ = new Item_hex_string($1.str, $1.length);}
+ | BIN_NUM { $$= new Item_bin_string($1.str, $1.length); }
| UNDERSCORE_CHARSET HEX_NUM
{
Item *tmp= new Item_hex_string($2.str, $2.length);
@@ -9453,238 +9911,249 @@ literal:
if ($$)
((Item_string *) $$)->set_repertoire_from_value();
}
- | UNDERSCORE_CHARSET BIN_NUM
+ | UNDERSCORE_CHARSET BIN_NUM
{
- Item *tmp= new Item_bin_string($2.str, $2.length);
- /*
- it is OK only emulate fix_fieds, because we need only
+ Item *tmp= new Item_bin_string($2.str, $2.length);
+ /*
+ it is OK only emulate fix_fieds, because we need only
value of constant
- */
- String *str= tmp ?
- tmp->quick_fix_field(), tmp->val_str((String*) 0) :
- (String*) 0;
- $$= new Item_string(str ? str->ptr() : "",
- str ? str->length() : 0,
- Lex->charset);
- }
- | DATE_SYM text_literal { $$ = $2; }
- | TIME_SYM text_literal { $$ = $2; }
- | TIMESTAMP text_literal { $$ = $2; };
+ */
+ String *str= tmp ?
+ tmp->quick_fix_field(), tmp->val_str((String*) 0) :
+ (String*) 0;
+ $$= new Item_string(str ? str->ptr() : "",
+ str ? str->length() : 0,
+ Lex->charset);
+ }
+ | DATE_SYM text_literal { $$ = $2; }
+ | TIME_SYM text_literal { $$ = $2; }
+ | TIMESTAMP text_literal { $$ = $2; }
+ ;
NUM_literal:
- NUM { int error; $$ = new Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); }
- | LONG_NUM { int error; $$ = new Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length); }
- | ULONGLONG_NUM { $$ = new Item_uint($1.str, $1.length); }
+ NUM
+ {
+ int error;
+ $$ = new Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length);
+ }
+ | LONG_NUM
+ {
+ int error;
+ $$ = new Item_int($1.str, (longlong) my_strtoll10($1.str, NULL, &error), $1.length);
+ }
+ | ULONGLONG_NUM
+ { $$ = new Item_uint($1.str, $1.length); }
| DECIMAL_NUM
- {
- $$= new Item_decimal($1.str, $1.length, YYTHD->charset());
- if (YYTHD->net.report_error)
- {
- MYSQL_YYABORT;
- }
- }
- | FLOAT_NUM
- {
- $$ = new Item_float($1.str, $1.length);
- if (YYTHD->net.report_error)
- {
- MYSQL_YYABORT;
- }
- }
- ;
+ {
+ $$= new Item_decimal($1.str, $1.length, YYTHD->charset());
+ if (YYTHD->net.report_error)
+ {
+ MYSQL_YYABORT;
+ }
+ }
+ | FLOAT_NUM
+ {
+ $$ = new Item_float($1.str, $1.length);
+ if (YYTHD->net.report_error)
+ {
+ MYSQL_YYABORT;
+ }
+ }
+ ;
/**********************************************************************
** Creating different items.
**********************************************************************/
insert_ident:
- simple_ident_nospvar { $$=$1; }
- | table_wild { $$=$1; };
+ simple_ident_nospvar { $$=$1; }
+ | table_wild { $$=$1; }
+ ;
table_wild:
- ident '.' '*'
- {
- SELECT_LEX *sel= Select;
- $$ = new Item_field(Lex->current_context(), NullS, $1.str, "*");
- sel->with_wild++;
- }
- | ident '.' ident '.' '*'
- {
- SELECT_LEX *sel= Select;
- $$ = new Item_field(Lex->current_context(), (YYTHD->client_capabilities &
- CLIENT_NO_SCHEMA ? NullS : $1.str),
- $3.str,"*");
- sel->with_wild++;
- }
- ;
+ ident '.' '*'
+ {
+ SELECT_LEX *sel= Select;
+ $$ = new Item_field(Lex->current_context(), NullS, $1.str, "*");
+ sel->with_wild++;
+ }
+ | ident '.' ident '.' '*'
+ {
+ SELECT_LEX *sel= Select;
+ $$ = new Item_field(Lex->current_context(), (YYTHD->client_capabilities &
+ CLIENT_NO_SCHEMA ? NullS : $1.str),
+ $3.str,"*");
+ sel->with_wild++;
+ }
+ ;
order_ident:
- expr { $$=$1; };
+ expr { $$=$1; }
+ ;
simple_ident:
- ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- sp_variable_t *spv;
- sp_pcontext *spc = lex->spcont;
- if (spc && (spv = spc->find_variable(&$1)))
- {
- /* We're compiling a stored procedure and found a variable */
- if (! lex->parsing_options.allows_variable)
+ ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ sp_variable_t *spv;
+ sp_pcontext *spc = lex->spcont;
+ if (spc && (spv = spc->find_variable(&$1)))
{
- my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
- MYSQL_YYABORT;
- }
+ /* We're compiling a stored procedure and found a variable */
+ if (! lex->parsing_options.allows_variable)
+ {
+ my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
+ MYSQL_YYABORT;
+ }
- Item_splocal *splocal;
- splocal= new Item_splocal($1, spv->offset, spv->type,
- lip->get_tok_start_prev() -
- lex->sphead->m_tmp_query,
- lip->get_tok_end() - lip->get_tok_start_prev());
+ Item_splocal *splocal;
+ splocal= new Item_splocal($1, spv->offset, spv->type,
+ lip->get_tok_start_prev() -
+ lex->sphead->m_tmp_query,
+ lip->get_tok_end() - lip->get_tok_start_prev());
#ifndef DBUG_OFF
- if (splocal)
- splocal->m_sp= lex->sphead;
+ if (splocal)
+ splocal->m_sp= lex->sphead;
#endif
- $$ = (Item*) splocal;
- lex->safe_to_cache_query=0;
- }
- else
- {
- SELECT_LEX *sel=Select;
- $$= (sel->parsing_place != IN_HAVING ||
- sel->get_in_sum_expr() > 0) ?
- (Item*) new Item_field(Lex->current_context(), NullS, NullS, $1.str) :
- (Item*) new Item_ref(Lex->current_context(), NullS, NullS, $1.str);
- }
- }
+ $$ = (Item*) splocal;
+ lex->safe_to_cache_query=0;
+ }
+ else
+ {
+ SELECT_LEX *sel=Select;
+ $$= (sel->parsing_place != IN_HAVING ||
+ sel->get_in_sum_expr() > 0) ?
+ (Item*) new Item_field(Lex->current_context(), NullS, NullS, $1.str) :
+ (Item*) new Item_ref(Lex->current_context(), NullS, NullS, $1.str);
+ }
+ }
| simple_ident_q { $$= $1; }
- ;
+ ;
simple_ident_nospvar:
- ident
- {
- SELECT_LEX *sel=Select;
- $$= (sel->parsing_place != IN_HAVING ||
- sel->get_in_sum_expr() > 0) ?
- (Item*) new Item_field(Lex->current_context(), NullS, NullS, $1.str) :
- (Item*) new Item_ref(Lex->current_context(), NullS, NullS, $1.str);
- }
- | simple_ident_q { $$= $1; }
- ;
+ ident
+ {
+ SELECT_LEX *sel=Select;
+ $$= (sel->parsing_place != IN_HAVING ||
+ sel->get_in_sum_expr() > 0) ?
+ (Item*) new Item_field(Lex->current_context(), NullS, NullS, $1.str) :
+ (Item*) new Item_ref(Lex->current_context(), NullS, NullS, $1.str);
+ }
+ | simple_ident_q { $$= $1; }
+ ;
simple_ident_q:
- ident '.' ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
-
- /*
- FIXME This will work ok in simple_ident_nospvar case because
- we can't meet simple_ident_nospvar in trigger now. But it
- should be changed in future.
- */
- if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
- (!my_strcasecmp(system_charset_info, $1.str, "NEW") ||
- !my_strcasecmp(system_charset_info, $1.str, "OLD")))
+ ident '.' ident
{
- Item_trigger_field *trg_fld;
- bool new_row= ($1.str[0]=='N' || $1.str[0]=='n');
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
- if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
- !new_row)
+ /*
+ FIXME This will work ok in simple_ident_nospvar case because
+ we can't meet simple_ident_nospvar in trigger now. But it
+ should be changed in future.
+ */
+ if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
+ (!my_strcasecmp(system_charset_info, $1.str, "NEW") ||
+ !my_strcasecmp(system_charset_info, $1.str, "OLD")))
{
- my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
- MYSQL_YYABORT;
- }
+ Item_trigger_field *trg_fld;
+ bool new_row= ($1.str[0]=='N' || $1.str[0]=='n');
- if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
- new_row)
- {
- my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
- MYSQL_YYABORT;
- }
+ if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
+ !new_row)
+ {
+ my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
+ MYSQL_YYABORT;
+ }
- DBUG_ASSERT(!new_row ||
- (lex->trg_chistics.event == TRG_EVENT_INSERT ||
- lex->trg_chistics.event == TRG_EVENT_UPDATE));
- const bool read_only=
- !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
- if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
- new_row ?
- Item_trigger_field::NEW_ROW:
- Item_trigger_field::OLD_ROW,
- $3.str,
- SELECT_ACL,
- read_only)))
- MYSQL_YYABORT;
+ if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
+ new_row)
+ {
+ my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
+ MYSQL_YYABORT;
+ }
- /*
- Let us add this item to list of all Item_trigger_field objects
- in trigger.
- */
- lex->trg_table_fields.link_in_list((uchar*) trg_fld,
- (uchar**) &trg_fld->
- next_trg_field);
-
- $$= (Item *)trg_fld;
- }
- else
- {
- SELECT_LEX *sel= lex->current_select;
- if (sel->no_table_names_allowed)
- {
- my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
- MYF(0), $1.str, thd->where);
- }
- $$= (sel->parsing_place != IN_HAVING ||
- sel->get_in_sum_expr() > 0) ?
- (Item*) new Item_field(Lex->current_context(), NullS, $1.str, $3.str) :
- (Item*) new Item_ref(Lex->current_context(), NullS, $1.str, $3.str);
- }
- }
- | '.' ident '.' ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- SELECT_LEX *sel= lex->current_select;
- if (sel->no_table_names_allowed)
- {
- my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
- MYF(0), $2.str, thd->where);
- }
- $$= (sel->parsing_place != IN_HAVING ||
- sel->get_in_sum_expr() > 0) ?
- (Item*) new Item_field(Lex->current_context(), NullS, $2.str, $4.str) :
- (Item*) new Item_ref(Lex->current_context(), NullS, $2.str, $4.str);
- }
- | ident '.' ident '.' ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- SELECT_LEX *sel= lex->current_select;
- if (sel->no_table_names_allowed)
- {
- my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
- MYF(0), $3.str, thd->where);
- }
- $$= (sel->parsing_place != IN_HAVING ||
- sel->get_in_sum_expr() > 0) ?
- (Item*) new Item_field(Lex->current_context(),
- (YYTHD->client_capabilities &
- CLIENT_NO_SCHEMA ? NullS : $1.str),
- $3.str, $5.str) :
- (Item*) new Item_ref(Lex->current_context(),
- (YYTHD->client_capabilities &
- CLIENT_NO_SCHEMA ? NullS : $1.str),
- $3.str, $5.str);
- };
+ DBUG_ASSERT(!new_row ||
+ (lex->trg_chistics.event == TRG_EVENT_INSERT ||
+ lex->trg_chistics.event == TRG_EVENT_UPDATE));
+ const bool read_only=
+ !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
+ if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
+ new_row ?
+ Item_trigger_field::NEW_ROW:
+ Item_trigger_field::OLD_ROW,
+ $3.str,
+ SELECT_ACL,
+ read_only)))
+ MYSQL_YYABORT;
+ /*
+ Let us add this item to list of all Item_trigger_field objects
+ in trigger.
+ */
+ lex->trg_table_fields.link_in_list((uchar*) trg_fld,
+ (uchar**) &trg_fld->next_trg_field);
+
+ $$= (Item *)trg_fld;
+ }
+ else
+ {
+ SELECT_LEX *sel= lex->current_select;
+ if (sel->no_table_names_allowed)
+ {
+ my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
+ MYF(0), $1.str, thd->where);
+ }
+ $$= (sel->parsing_place != IN_HAVING ||
+ sel->get_in_sum_expr() > 0) ?
+ (Item*) new Item_field(Lex->current_context(), NullS, $1.str, $3.str) :
+ (Item*) new Item_ref(Lex->current_context(), NullS, $1.str, $3.str);
+ }
+ }
+ | '.' ident '.' ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ SELECT_LEX *sel= lex->current_select;
+ if (sel->no_table_names_allowed)
+ {
+ my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
+ MYF(0), $2.str, thd->where);
+ }
+ $$= (sel->parsing_place != IN_HAVING ||
+ sel->get_in_sum_expr() > 0) ?
+ (Item*) new Item_field(Lex->current_context(), NullS, $2.str, $4.str) :
+ (Item*) new Item_ref(Lex->current_context(), NullS, $2.str, $4.str);
+ }
+ | ident '.' ident '.' ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ SELECT_LEX *sel= lex->current_select;
+ if (sel->no_table_names_allowed)
+ {
+ my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
+ MYF(0), $3.str, thd->where);
+ }
+ $$= (sel->parsing_place != IN_HAVING ||
+ sel->get_in_sum_expr() > 0) ?
+ (Item*) new Item_field(Lex->current_context(),
+ (YYTHD->client_capabilities &
+ CLIENT_NO_SCHEMA ? NullS : $1.str),
+ $3.str, $5.str) :
+ (Item*) new Item_ref(Lex->current_context(),
+ (YYTHD->client_capabilities &
+ CLIENT_NO_SCHEMA ? NullS : $1.str),
+ $3.str, $5.str);
+ }
+ ;
field_ident:
- ident { $$=$1;}
- | ident '.' ident '.' ident
+ ident { $$=$1;}
+ | ident '.' ident '.' ident
{
TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
if (my_strcasecmp(table_alias_charset, $1.str, table->db))
@@ -9700,7 +10169,7 @@ field_ident:
}
$$=$5;
}
- | ident '.' ident
+ | ident '.' ident
{
TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
if (my_strcasecmp(table_alias_charset, $1.str, table->alias))
@@ -9710,25 +10179,30 @@ field_ident:
}
$$=$3;
}
- | '.' ident { $$=$2;} /* For Delphi */;
+ | '.' ident { $$=$2;} /* For Delphi */
+ ;
table_ident:
- ident { $$=new Table_ident($1); }
- | ident '.' ident { $$=new Table_ident(YYTHD, $1,$3,0);}
- | '.' ident { $$=new Table_ident($2);} /* For Delphi */
+ ident { $$=new Table_ident($1); }
+ | ident '.' ident { $$=new Table_ident(YYTHD, $1,$3,0);}
+ | '.' ident { $$=new Table_ident($2);} /* For Delphi */
;
table_ident_nodb:
- ident { LEX_STRING db={(char*) any_db,3}; $$=new Table_ident(YYTHD, db,$1,0); }
+ ident
+ {
+ LEX_STRING db={(char*) any_db,3};
+ $$=new Table_ident(YYTHD, db,$1,0);
+ }
;
IDENT_sys:
- IDENT { $$= $1; }
- | IDENT_QUOTED
- {
- THD *thd= YYTHD;
+ IDENT { $$= $1; }
+ | IDENT_QUOTED
+ {
+ THD *thd= YYTHD;
- if (thd->charset_is_system_charset)
+ if (thd->charset_is_system_charset)
{
CHARSET_INFO *cs= system_charset_info;
int dummy_error;
@@ -9741,179 +10215,180 @@ IDENT_sys:
cs->csname, $1.str + wlen);
MYSQL_YYABORT;
}
- $$= $1;
+ $$= $1;
}
- else
- thd->convert_string(&$$, system_charset_info,
- $1.str, $1.length, thd->charset());
- }
- ;
+ else
+ thd->convert_string(&$$, system_charset_info,
+ $1.str, $1.length, thd->charset());
+ }
+ ;
TEXT_STRING_sys:
- TEXT_STRING
- {
- THD *thd= YYTHD;
-
- if (thd->charset_is_system_charset)
- $$= $1;
- else
- thd->convert_string(&$$, system_charset_info,
- $1.str, $1.length, thd->charset());
- }
- ;
+ TEXT_STRING
+ {
+ THD *thd= YYTHD;
-TEXT_STRING_literal:
- TEXT_STRING
- {
- THD *thd= YYTHD;
+ if (thd->charset_is_system_charset)
+ $$= $1;
+ else
+ thd->convert_string(&$$, system_charset_info,
+ $1.str, $1.length, thd->charset());
+ }
+ ;
- if (thd->charset_is_collation_connection)
- $$= $1;
- else
- thd->convert_string(&$$, thd->variables.collation_connection,
- $1.str, $1.length, thd->charset());
- }
- ;
+TEXT_STRING_literal:
+ TEXT_STRING
+ {
+ THD *thd= YYTHD;
+ if (thd->charset_is_collation_connection)
+ $$= $1;
+ else
+ thd->convert_string(&$$, thd->variables.collation_connection,
+ $1.str, $1.length, thd->charset());
+ }
+ ;
TEXT_STRING_filesystem:
- TEXT_STRING
- {
- THD *thd= YYTHD;
-
- if (thd->charset_is_character_set_filesystem)
- $$= $1;
- else
- thd->convert_string(&$$, thd->variables.character_set_filesystem,
- $1.str, $1.length, thd->charset());
- }
- ;
+ TEXT_STRING
+ {
+ THD *thd= YYTHD;
+
+ if (thd->charset_is_character_set_filesystem)
+ $$= $1;
+ else
+ thd->convert_string(&$$, thd->variables.character_set_filesystem,
+ $1.str, $1.length, thd->charset());
+ }
+ ;
ident:
- IDENT_sys { $$=$1; }
- | READ_ONLY_SYM
- {
- THD *thd= YYTHD;
- $$.str= thd->strmake("read_only",9);
- $$.length= 9;
- }
- | keyword
- {
- THD *thd= YYTHD;
- $$.str= thd->strmake($1.str, $1.length);
- $$.length= $1.length;
- }
- ;
+ IDENT_sys { $$=$1; }
+ | READ_ONLY_SYM
+ {
+ THD *thd= YYTHD;
+ $$.str= thd->strmake("read_only",9);
+ $$.length= 9;
+ }
+ | keyword
+ {
+ THD *thd= YYTHD;
+ $$.str= thd->strmake($1.str, $1.length);
+ $$.length= $1.length;
+ }
+ ;
label_ident:
- IDENT_sys { $$=$1; }
- | keyword_sp
- {
- THD *thd= YYTHD;
- $$.str= thd->strmake($1.str, $1.length);
- $$.length= $1.length;
- }
- ;
+ IDENT_sys { $$=$1; }
+ | keyword_sp
+ {
+ THD *thd= YYTHD;
+ $$.str= thd->strmake($1.str, $1.length);
+ $$.length= $1.length;
+ }
+ ;
ident_or_text:
- ident { $$=$1;}
- | TEXT_STRING_sys { $$=$1;}
- | LEX_HOSTNAME { $$=$1;};
+ ident { $$=$1;}
+ | TEXT_STRING_sys { $$=$1;}
+ | LEX_HOSTNAME { $$=$1;}
+ ;
user:
- ident_or_text
- {
- THD *thd= YYTHD;
- if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
- MYSQL_YYABORT;
- $$->user = $1;
- $$->host.str= (char *) "%";
- $$->host.length= 1;
-
- if (check_string_char_length(&$$->user, ER(ER_USERNAME),
- USERNAME_CHAR_LENGTH,
- system_charset_info, 0))
- MYSQL_YYABORT;
- }
- | ident_or_text '@' ident_or_text
- {
- THD *thd= YYTHD;
- if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
- MYSQL_YYABORT;
- $$->user = $1; $$->host=$3;
-
- if (check_string_char_length(&$$->user, ER(ER_USERNAME),
+ ident_or_text
+ {
+ THD *thd= YYTHD;
+ if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
+ MYSQL_YYABORT;
+ $$->user = $1;
+ $$->host.str= (char *) "%";
+ $$->host.length= 1;
+
+ if (check_string_char_length(&$$->user, ER(ER_USERNAME),
+ USERNAME_CHAR_LENGTH,
+ system_charset_info, 0))
+ MYSQL_YYABORT;
+ }
+ | ident_or_text '@' ident_or_text
+ {
+ THD *thd= YYTHD;
+ if (!($$=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
+ MYSQL_YYABORT;
+ $$->user = $1; $$->host=$3;
+
+ if (check_string_char_length(&$$->user, ER(ER_USERNAME),
USERNAME_CHAR_LENGTH,
system_charset_info, 0) ||
- check_string_byte_length(&$$->host, ER(ER_HOSTNAME),
+ check_string_byte_length(&$$->host, ER(ER_HOSTNAME),
HOSTNAME_LENGTH))
- MYSQL_YYABORT;
- }
- | CURRENT_USER optional_braces
- {
- if (!($$=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
- MYSQL_YYABORT;
- /*
- empty LEX_USER means current_user and
- will be handled in the get_current_user() function
- later
- */
- bzero($$, sizeof(LEX_USER));
- };
+ MYSQL_YYABORT;
+ }
+ | CURRENT_USER optional_braces
+ {
+ if (!($$=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
+ MYSQL_YYABORT;
+ /*
+ empty LEX_USER means current_user and
+ will be handled in the get_current_user() function
+ later
+ */
+ bzero($$, sizeof(LEX_USER));
+ }
+ ;
/* Keyword that we allow for identifiers (except SP labels) */
keyword:
- keyword_sp {}
- | ASCII_SYM {}
- | BACKUP_SYM {}
- | BEGIN_SYM {}
- | BYTE_SYM {}
- | CACHE_SYM {}
- | CHARSET {}
- | CHECKSUM_SYM {}
- | CLOSE_SYM {}
- | COMMENT_SYM {}
- | COMMIT_SYM {}
- | CONTAINS_SYM {}
+ keyword_sp {}
+ | ASCII_SYM {}
+ | BACKUP_SYM {}
+ | BEGIN_SYM {}
+ | BYTE_SYM {}
+ | CACHE_SYM {}
+ | CHARSET {}
+ | CHECKSUM_SYM {}
+ | CLOSE_SYM {}
+ | COMMENT_SYM {}
+ | COMMIT_SYM {}
+ | CONTAINS_SYM {}
| DEALLOCATE_SYM {}
- | DO_SYM {}
- | END {}
- | EXECUTE_SYM {}
- | FLUSH_SYM {}
- | HANDLER_SYM {}
- | HELP_SYM {}
- | HOST_SYM {}
+ | DO_SYM {}
+ | END {}
+ | EXECUTE_SYM {}
+ | FLUSH_SYM {}
+ | HANDLER_SYM {}
+ | HELP_SYM {}
+ | HOST_SYM {}
| INSTALL_SYM {}
- | LANGUAGE_SYM {}
- | NO_SYM {}
- | OPEN_SYM {}
- | OPTIONS_SYM {}
- | OWNER_SYM {}
+ | LANGUAGE_SYM {}
+ | NO_SYM {}
+ | OPEN_SYM {}
+ | OPTIONS_SYM {}
+ | OWNER_SYM {}
| PARSER_SYM {}
- | PARTITION_SYM {}
+ | PARTITION_SYM {}
| PORT_SYM {}
| PREPARE_SYM {}
- | REMOVE_SYM {}
- | REPAIR {}
- | RESET_SYM {}
- | RESTORE_SYM {}
- | ROLLBACK_SYM {}
- | SAVEPOINT_SYM {}
- | SECURITY_SYM {}
+ | REMOVE_SYM {}
+ | REPAIR {}
+ | RESET_SYM {}
+ | RESTORE_SYM {}
+ | ROLLBACK_SYM {}
+ | SAVEPOINT_SYM {}
+ | SECURITY_SYM {}
| SERVER_SYM {}
- | SIGNED_SYM {}
- | SOCKET_SYM {}
- | SLAVE {}
+ | SIGNED_SYM {}
+ | SOCKET_SYM {}
+ | SLAVE {}
| SONAME_SYM {}
- | START_SYM {}
- | STOP_SYM {}
- | TRUNCATE_SYM {}
- | UNICODE_SYM {}
+ | START_SYM {}
+ | STOP_SYM {}
+ | TRUNCATE_SYM {}
+ | UNICODE_SYM {}
| UNINSTALL_SYM {}
- | WRAPPER_SYM {}
+ | WRAPPER_SYM {}
| XA_SYM {}
| UPGRADE_SYM {}
- ;
+ ;
/*
* Keywords that we allow for labels in SPs.
@@ -9922,586 +10397,590 @@ keyword:
* conflicts.
*/
keyword_sp:
- ACTION {}
- | ADDDATE_SYM {}
- | AFTER_SYM {}
- | AGAINST {}
- | AGGREGATE_SYM {}
- | ALGORITHM_SYM {}
- | ANY_SYM {}
- | AT_SYM {}
- | AUTHORS_SYM {}
- | AUTO_INC {}
- | AUTOEXTEND_SIZE_SYM {}
- | AVG_ROW_LENGTH {}
- | AVG_SYM {}
- | BINLOG_SYM {}
- | BIT_SYM {}
- | BOOL_SYM {}
- | BOOLEAN_SYM {}
- | BTREE_SYM {}
- | CASCADED {}
- | CHAIN_SYM {}
- | CHANGED {}
- | CIPHER_SYM {}
- | CLIENT_SYM {}
- | COALESCE {}
- | CODE_SYM {}
- | COLLATION_SYM {}
- | COLUMNS {}
- | COMMITTED_SYM {}
- | COMPACT_SYM {}
- | COMPLETION_SYM {}
- | COMPRESSED_SYM {}
- | CONCURRENT {}
- | CONNECTION_SYM {}
- | CONSISTENT_SYM {}
- | CONTRIBUTORS_SYM {}
- | CUBE_SYM {}
- | DATA_SYM {}
- | DATAFILE_SYM {}
- | DATETIME {}
- | DATE_SYM {}
- | DAY_SYM {}
- | DEFINER_SYM {}
- | DELAY_KEY_WRITE_SYM {}
- | DES_KEY_FILE {}
- | DIRECTORY_SYM {}
- | DISABLE_SYM {}
- | DISCARD {}
- | DISK_SYM {}
- | DUMPFILE {}
- | DUPLICATE_SYM {}
- | DYNAMIC_SYM {}
- | ENDS_SYM {}
- | ENUM {}
- | ENGINE_SYM {}
- | ENGINES_SYM {}
- | ERRORS {}
- | ESCAPE_SYM {}
- | EVENT_SYM {}
- | EVENTS_SYM {}
- | EVERY_SYM {}
- | EXPANSION_SYM {}
- | EXTENDED_SYM {}
- | EXTENT_SIZE_SYM {}
- | FAST_SYM {}
- | FOUND_SYM {}
- | ENABLE_SYM {}
- | FULL {}
- | FILE_SYM {}
- | FIRST_SYM {}
- | FIXED_SYM {}
- | FRAC_SECOND_SYM {}
- | GEOMETRY_SYM {}
- | GEOMETRYCOLLECTION {}
- | GET_FORMAT {}
- | GRANTS {}
- | GLOBAL_SYM {}
- | HASH_SYM {}
- | HOSTS_SYM {}
- | HOUR_SYM {}
- | IDENTIFIED_SYM {}
- | INVOKER_SYM {}
- | IMPORT {}
- | INDEXES {}
- | INITIAL_SIZE_SYM {}
- | ISOLATION {}
- | ISSUER_SYM {}
- | INNOBASE_SYM {}
- | INSERT_METHOD {}
- | KEY_BLOCK_SIZE {}
- | LAST_SYM {}
- | LEAVES {}
- | LESS_SYM {}
- | LEVEL_SYM {}
- | LINESTRING {}
- | LIST_SYM {}
- | LOCAL_SYM {}
- | LOCKS_SYM {}
- | LOGFILE_SYM {}
- | LOGS_SYM {}
- | MAX_ROWS {}
- | MASTER_SYM {}
- | MASTER_HOST_SYM {}
- | MASTER_PORT_SYM {}
- | MASTER_LOG_FILE_SYM {}
- | MASTER_LOG_POS_SYM {}
- | MASTER_USER_SYM {}
- | MASTER_PASSWORD_SYM {}
- | MASTER_SERVER_ID_SYM {}
- | MASTER_CONNECT_RETRY_SYM {}
- | MASTER_SSL_SYM {}
- | MASTER_SSL_CA_SYM {}
- | MASTER_SSL_CAPATH_SYM {}
- | MASTER_SSL_CERT_SYM {}
- | MASTER_SSL_CIPHER_SYM {}
- | MASTER_SSL_KEY_SYM {}
- | MAX_CONNECTIONS_PER_HOUR {}
- | MAX_QUERIES_PER_HOUR {}
- | MAX_SIZE_SYM {}
- | MAX_UPDATES_PER_HOUR {}
- | MAX_USER_CONNECTIONS_SYM {}
- | MAX_VALUE_SYM {}
- | MEDIUM_SYM {}
- | MEMORY_SYM {}
- | MERGE_SYM {}
- | MICROSECOND_SYM {}
- | MIGRATE_SYM {}
- | MINUTE_SYM {}
- | MIN_ROWS {}
- | MODIFY_SYM {}
- | MODE_SYM {}
- | MONTH_SYM {}
- | MULTILINESTRING {}
- | MULTIPOINT {}
- | MULTIPOLYGON {}
- | MUTEX_SYM {}
- | NAME_SYM {}
- | NAMES_SYM {}
- | NATIONAL_SYM {}
- | NCHAR_SYM {}
- | NDBCLUSTER_SYM {}
- | NEXT_SYM {}
- | NEW_SYM {}
- | NO_WAIT_SYM {}
- | NODEGROUP_SYM {}
- | NONE_SYM {}
- | NVARCHAR_SYM {}
- | OFFSET_SYM {}
- | OLD_PASSWORD {}
- | ONE_SHOT_SYM {}
- | ONE_SYM {}
- | PACK_KEYS_SYM {}
- | PARTIAL {}
- | PARTITIONING_SYM {}
- | PARTITIONS_SYM {}
- | PASSWORD {}
- | PHASE_SYM {}
- | PLUGIN_SYM {}
- | PLUGINS_SYM {}
- | POINT_SYM {}
- | POLYGON {}
- | PRESERVE_SYM {}
- | PREV_SYM {}
- | PRIVILEGES {}
- | PROCESS {}
- | PROCESSLIST_SYM {}
- | QUARTER_SYM {}
- | QUERY_SYM {}
- | QUICK {}
- | REBUILD_SYM {}
- | RECOVER_SYM {}
- | REDO_BUFFER_SIZE_SYM {}
- | REDOFILE_SYM {}
- | REDUNDANT_SYM {}
- | RELAY_LOG_FILE_SYM {}
- | RELAY_LOG_POS_SYM {}
- | RELAY_THREAD {}
- | RELOAD {}
- | REORGANIZE_SYM {}
- | REPEATABLE_SYM {}
- | REPLICATION {}
- | RESOURCES {}
- | RESUME_SYM {}
- | RETURNS_SYM {}
- | ROLLUP_SYM {}
- | ROUTINE_SYM {}
- | ROWS_SYM {}
- | ROW_FORMAT_SYM {}
- | ROW_SYM {}
- | RTREE_SYM {}
- | SCHEDULE_SYM {}
- | SECOND_SYM {}
- | SERIAL_SYM {}
- | SERIALIZABLE_SYM {}
- | SESSION_SYM {}
- | SIMPLE_SYM {}
- | SHARE_SYM {}
- | SHUTDOWN {}
- | SNAPSHOT_SYM {}
- | SOUNDS_SYM {}
- | SQL_CACHE_SYM {}
- | SQL_BUFFER_RESULT {}
- | SQL_NO_CACHE_SYM {}
- | SQL_THREAD {}
- | STARTS_SYM {}
- | STATUS_SYM {}
- | STORAGE_SYM {}
- | STRING_SYM {}
- | SUBDATE_SYM {}
- | SUBJECT_SYM {}
- | SUBPARTITION_SYM {}
- | SUBPARTITIONS_SYM {}
- | SUPER_SYM {}
- | SUSPEND_SYM {}
- | TABLES {}
- | TABLESPACE {}
- | TEMPORARY {}
- | TEMPTABLE_SYM {}
- | TEXT_SYM {}
- | THAN_SYM {}
- | TRANSACTION_SYM {}
- | TRIGGERS_SYM {}
- | TIMESTAMP {}
- | TIMESTAMP_ADD {}
- | TIMESTAMP_DIFF {}
- | TIME_SYM {}
- | TYPES_SYM {}
- | TYPE_SYM {}
- | UDF_RETURNS_SYM {}
- | FUNCTION_SYM {}
- | UNCOMMITTED_SYM {}
- | UNDEFINED_SYM {}
- | UNDO_BUFFER_SIZE_SYM {}
- | UNDOFILE_SYM {}
- | UNKNOWN_SYM {}
- | UNTIL_SYM {}
- | USER {}
- | USE_FRM {}
- | VARIABLES {}
- | VIEW_SYM {}
- | VALUE_SYM {}
- | WARNINGS {}
- | WAIT_SYM {}
- | WEEK_SYM {}
- | WORK_SYM {}
- | X509_SYM {}
- | YEAR_SYM {}
- ;
+ ACTION {}
+ | ADDDATE_SYM {}
+ | AFTER_SYM {}
+ | AGAINST {}
+ | AGGREGATE_SYM {}
+ | ALGORITHM_SYM {}
+ | ANY_SYM {}
+ | AT_SYM {}
+ | AUTHORS_SYM {}
+ | AUTO_INC {}
+ | AUTOEXTEND_SIZE_SYM {}
+ | AVG_ROW_LENGTH {}
+ | AVG_SYM {}
+ | BINLOG_SYM {}
+ | BIT_SYM {}
+ | BOOL_SYM {}
+ | BOOLEAN_SYM {}
+ | BTREE_SYM {}
+ | CASCADED {}
+ | CHAIN_SYM {}
+ | CHANGED {}
+ | CIPHER_SYM {}
+ | CLIENT_SYM {}
+ | COALESCE {}
+ | CODE_SYM {}
+ | COLLATION_SYM {}
+ | COLUMNS {}
+ | COMMITTED_SYM {}
+ | COMPACT_SYM {}
+ | COMPLETION_SYM {}
+ | COMPRESSED_SYM {}
+ | CONCURRENT {}
+ | CONNECTION_SYM {}
+ | CONSISTENT_SYM {}
+ | CONTRIBUTORS_SYM {}
+ | CUBE_SYM {}
+ | DATA_SYM {}
+ | DATAFILE_SYM {}
+ | DATETIME {}
+ | DATE_SYM {}
+ | DAY_SYM {}
+ | DEFINER_SYM {}
+ | DELAY_KEY_WRITE_SYM {}
+ | DES_KEY_FILE {}
+ | DIRECTORY_SYM {}
+ | DISABLE_SYM {}
+ | DISCARD {}
+ | DISK_SYM {}
+ | DUMPFILE {}
+ | DUPLICATE_SYM {}
+ | DYNAMIC_SYM {}
+ | ENDS_SYM {}
+ | ENUM {}
+ | ENGINE_SYM {}
+ | ENGINES_SYM {}
+ | ERRORS {}
+ | ESCAPE_SYM {}
+ | EVENT_SYM {}
+ | EVENTS_SYM {}
+ | EVERY_SYM {}
+ | EXPANSION_SYM {}
+ | EXTENDED_SYM {}
+ | EXTENT_SIZE_SYM {}
+ | FAST_SYM {}
+ | FOUND_SYM {}
+ | ENABLE_SYM {}
+ | FULL {}
+ | FILE_SYM {}
+ | FIRST_SYM {}
+ | FIXED_SYM {}
+ | FRAC_SECOND_SYM {}
+ | GEOMETRY_SYM {}
+ | GEOMETRYCOLLECTION {}
+ | GET_FORMAT {}
+ | GRANTS {}
+ | GLOBAL_SYM {}
+ | HASH_SYM {}
+ | HOSTS_SYM {}
+ | HOUR_SYM {}
+ | IDENTIFIED_SYM {}
+ | INVOKER_SYM {}
+ | IMPORT {}
+ | INDEXES {}
+ | INITIAL_SIZE_SYM {}
+ | ISOLATION {}
+ | ISSUER_SYM {}
+ | INNOBASE_SYM {}
+ | INSERT_METHOD {}
+ | KEY_BLOCK_SIZE {}
+ | LAST_SYM {}
+ | LEAVES {}
+ | LESS_SYM {}
+ | LEVEL_SYM {}
+ | LINESTRING {}
+ | LIST_SYM {}
+ | LOCAL_SYM {}
+ | LOCKS_SYM {}
+ | LOGFILE_SYM {}
+ | LOGS_SYM {}
+ | MAX_ROWS {}
+ | MASTER_SYM {}
+ | MASTER_HOST_SYM {}
+ | MASTER_PORT_SYM {}
+ | MASTER_LOG_FILE_SYM {}
+ | MASTER_LOG_POS_SYM {}
+ | MASTER_USER_SYM {}
+ | MASTER_PASSWORD_SYM {}
+ | MASTER_SERVER_ID_SYM {}
+ | MASTER_CONNECT_RETRY_SYM {}
+ | MASTER_SSL_SYM {}
+ | MASTER_SSL_CA_SYM {}
+ | MASTER_SSL_CAPATH_SYM {}
+ | MASTER_SSL_CERT_SYM {}
+ | MASTER_SSL_CIPHER_SYM {}
+ | MASTER_SSL_KEY_SYM {}
+ | MAX_CONNECTIONS_PER_HOUR {}
+ | MAX_QUERIES_PER_HOUR {}
+ | MAX_SIZE_SYM {}
+ | MAX_UPDATES_PER_HOUR {}
+ | MAX_USER_CONNECTIONS_SYM {}
+ | MAX_VALUE_SYM {}
+ | MEDIUM_SYM {}
+ | MEMORY_SYM {}
+ | MERGE_SYM {}
+ | MICROSECOND_SYM {}
+ | MIGRATE_SYM {}
+ | MINUTE_SYM {}
+ | MIN_ROWS {}
+ | MODIFY_SYM {}
+ | MODE_SYM {}
+ | MONTH_SYM {}
+ | MULTILINESTRING {}
+ | MULTIPOINT {}
+ | MULTIPOLYGON {}
+ | MUTEX_SYM {}
+ | NAME_SYM {}
+ | NAMES_SYM {}
+ | NATIONAL_SYM {}
+ | NCHAR_SYM {}
+ | NDBCLUSTER_SYM {}
+ | NEXT_SYM {}
+ | NEW_SYM {}
+ | NO_WAIT_SYM {}
+ | NODEGROUP_SYM {}
+ | NONE_SYM {}
+ | NVARCHAR_SYM {}
+ | OFFSET_SYM {}
+ | OLD_PASSWORD {}
+ | ONE_SHOT_SYM {}
+ | ONE_SYM {}
+ | PACK_KEYS_SYM {}
+ | PARTIAL {}
+ | PARTITIONING_SYM {}
+ | PARTITIONS_SYM {}
+ | PASSWORD {}
+ | PHASE_SYM {}
+ | PLUGIN_SYM {}
+ | PLUGINS_SYM {}
+ | POINT_SYM {}
+ | POLYGON {}
+ | PRESERVE_SYM {}
+ | PREV_SYM {}
+ | PRIVILEGES {}
+ | PROCESS {}
+ | PROCESSLIST_SYM {}
+ | QUARTER_SYM {}
+ | QUERY_SYM {}
+ | QUICK {}
+ | REBUILD_SYM {}
+ | RECOVER_SYM {}
+ | REDO_BUFFER_SIZE_SYM {}
+ | REDOFILE_SYM {}
+ | REDUNDANT_SYM {}
+ | RELAY_LOG_FILE_SYM {}
+ | RELAY_LOG_POS_SYM {}
+ | RELAY_THREAD {}
+ | RELOAD {}
+ | REORGANIZE_SYM {}
+ | REPEATABLE_SYM {}
+ | REPLICATION {}
+ | RESOURCES {}
+ | RESUME_SYM {}
+ | RETURNS_SYM {}
+ | ROLLUP_SYM {}
+ | ROUTINE_SYM {}
+ | ROWS_SYM {}
+ | ROW_FORMAT_SYM {}
+ | ROW_SYM {}
+ | RTREE_SYM {}
+ | SCHEDULE_SYM {}
+ | SECOND_SYM {}
+ | SERIAL_SYM {}
+ | SERIALIZABLE_SYM {}
+ | SESSION_SYM {}
+ | SIMPLE_SYM {}
+ | SHARE_SYM {}
+ | SHUTDOWN {}
+ | SNAPSHOT_SYM {}
+ | SOUNDS_SYM {}
+ | SQL_CACHE_SYM {}
+ | SQL_BUFFER_RESULT {}
+ | SQL_NO_CACHE_SYM {}
+ | SQL_THREAD {}
+ | STARTS_SYM {}
+ | STATUS_SYM {}
+ | STORAGE_SYM {}
+ | STRING_SYM {}
+ | SUBDATE_SYM {}
+ | SUBJECT_SYM {}
+ | SUBPARTITION_SYM {}
+ | SUBPARTITIONS_SYM {}
+ | SUPER_SYM {}
+ | SUSPEND_SYM {}
+ | TABLES {}
+ | TABLESPACE {}
+ | TEMPORARY {}
+ | TEMPTABLE_SYM {}
+ | TEXT_SYM {}
+ | THAN_SYM {}
+ | TRANSACTION_SYM {}
+ | TRIGGERS_SYM {}
+ | TIMESTAMP {}
+ | TIMESTAMP_ADD {}
+ | TIMESTAMP_DIFF {}
+ | TIME_SYM {}
+ | TYPES_SYM {}
+ | TYPE_SYM {}
+ | UDF_RETURNS_SYM {}
+ | FUNCTION_SYM {}
+ | UNCOMMITTED_SYM {}
+ | UNDEFINED_SYM {}
+ | UNDO_BUFFER_SIZE_SYM {}
+ | UNDOFILE_SYM {}
+ | UNKNOWN_SYM {}
+ | UNTIL_SYM {}
+ | USER {}
+ | USE_FRM {}
+ | VARIABLES {}
+ | VIEW_SYM {}
+ | VALUE_SYM {}
+ | WARNINGS {}
+ | WAIT_SYM {}
+ | WEEK_SYM {}
+ | WORK_SYM {}
+ | X509_SYM {}
+ | YEAR_SYM {}
+ ;
/* Option functions */
set:
- SET opt_option
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SET_OPTION;
- mysql_init_select(lex);
- lex->option_type=OPT_SESSION;
- lex->var_list.empty();
- lex->one_shot_set= 0;
- }
- option_value_list
- {}
- ;
+ SET opt_option
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SET_OPTION;
+ mysql_init_select(lex);
+ lex->option_type=OPT_SESSION;
+ lex->var_list.empty();
+ lex->one_shot_set= 0;
+ }
+ option_value_list
+ {}
+ ;
opt_option:
- /* empty */ {}
- | OPTION {};
+ /* empty */ {}
+ | OPTION {}
+ ;
option_value_list:
- option_type_value
- | option_value_list ',' option_type_value;
+ option_type_value
+ | option_value_list ',' option_type_value
+ ;
option_type_value:
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- if (lex->sphead)
{
- /*
- If we are in SP we want have own LEX for each assignment.
- This is mostly because it is hard for several sp_instr_set
- and sp_instr_set_trigger instructions share one LEX.
- (Well, it is theoretically possible but adds some extra
- overhead on preparation for execution stage and IMO less
- robust).
-
- QQ: May be we should simply prohibit group assignments in SP?
- */
- lex->sphead->reset_lex(thd);
- lex= thd->lex;
-
- /* Set new LEX as if we at start of set rule. */
- lex->sql_command= SQLCOM_SET_OPTION;
- mysql_init_select(lex);
- lex->option_type=OPT_SESSION;
- lex->var_list.empty();
- lex->one_shot_set= 0;
- lex->sphead->m_tmp_query= lip->get_tok_start();
- }
- }
- ext_option_value
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- if (lex->sphead)
- {
- sp_head *sp= lex->sphead;
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
- if (!lex->var_list.is_empty())
- {
+ if (lex->sphead)
+ {
/*
- We have assignment to user or system variable or
- option setting, so we should construct sp_instr_stmt
- for it.
+ If we are in SP we want have own LEX for each assignment.
+ This is mostly because it is hard for several sp_instr_set
+ and sp_instr_set_trigger instructions share one LEX.
+ (Well, it is theoretically possible but adds some extra
+ overhead on preparation for execution stage and IMO less
+ robust).
+
+ QQ: May be we should simply prohibit group assignments in SP?
*/
- LEX_STRING qbuff;
- sp_instr_stmt *i;
+ lex->sphead->reset_lex(thd);
+ lex= thd->lex;
+
+ /* Set new LEX as if we at start of set rule. */
+ lex->sql_command= SQLCOM_SET_OPTION;
+ mysql_init_select(lex);
+ lex->option_type=OPT_SESSION;
+ lex->var_list.empty();
+ lex->one_shot_set= 0;
+ lex->sphead->m_tmp_query= lip->get_tok_start();
+ }
+ }
+ ext_option_value
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
- if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
- lex)))
- MYSQL_YYABORT;
+ if (lex->sphead)
+ {
+ sp_head *sp= lex->sphead;
- /*
- Extract the query statement from the tokenizer. The
- end is either lip->ptr, if there was no lookahead,
- lip->tok_end otherwise.
- */
- if (yychar == YYEMPTY)
- qbuff.length= lip->get_ptr() - sp->m_tmp_query;
- else
- qbuff.length= lip->get_tok_end() - sp->m_tmp_query;
+ if (!lex->var_list.is_empty())
+ {
+ /*
+ We have assignment to user or system variable or
+ option setting, so we should construct sp_instr_stmt
+ for it.
+ */
+ LEX_STRING qbuff;
+ sp_instr_stmt *i;
+
+ if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
+ lex)))
+ MYSQL_YYABORT;
- if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
- qbuff.length + 5)))
- MYSQL_YYABORT;
+ /*
+ Extract the query statement from the tokenizer. The
+ end is either lip->ptr, if there was no lookahead,
+ lip->tok_end otherwise.
+ */
+ if (yychar == YYEMPTY)
+ qbuff.length= lip->get_ptr() - sp->m_tmp_query;
+ else
+ qbuff.length= lip->get_tok_end() - sp->m_tmp_query;
+
+ if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
+ qbuff.length + 5)))
+ MYSQL_YYABORT;
- strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
- qbuff.length);
- qbuff.length+= 4;
- i->m_query= qbuff;
- sp->add_instr(i);
+ strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
+ qbuff.length);
+ qbuff.length+= 4;
+ i->m_query= qbuff;
+ sp->add_instr(i);
+ }
+ lex->sphead->restore_lex(thd);
}
- lex->sphead->restore_lex(thd);
}
- };
+ ;
option_type:
- option_type2 {}
- | GLOBAL_SYM { $$=OPT_GLOBAL; }
- | LOCAL_SYM { $$=OPT_SESSION; }
- | SESSION_SYM { $$=OPT_SESSION; }
- ;
+ option_type2 {}
+ | GLOBAL_SYM { $$=OPT_GLOBAL; }
+ | LOCAL_SYM { $$=OPT_SESSION; }
+ | SESSION_SYM { $$=OPT_SESSION; }
+ ;
option_type2:
- /* empty */ { $$= OPT_DEFAULT; }
- | ONE_SHOT_SYM { Lex->one_shot_set= 1; $$= OPT_SESSION; }
- ;
+ /* empty */ { $$= OPT_DEFAULT; }
+ | ONE_SHOT_SYM { Lex->one_shot_set= 1; $$= OPT_SESSION; }
+ ;
opt_var_type:
- /* empty */ { $$=OPT_SESSION; }
- | GLOBAL_SYM { $$=OPT_GLOBAL; }
- | LOCAL_SYM { $$=OPT_SESSION; }
- | SESSION_SYM { $$=OPT_SESSION; }
- ;
+ /* empty */ { $$=OPT_SESSION; }
+ | GLOBAL_SYM { $$=OPT_GLOBAL; }
+ | LOCAL_SYM { $$=OPT_SESSION; }
+ | SESSION_SYM { $$=OPT_SESSION; }
+ ;
opt_var_ident_type:
- /* empty */ { $$=OPT_DEFAULT; }
- | GLOBAL_SYM '.' { $$=OPT_GLOBAL; }
- | LOCAL_SYM '.' { $$=OPT_SESSION; }
- | SESSION_SYM '.' { $$=OPT_SESSION; }
- ;
+ /* empty */ { $$=OPT_DEFAULT; }
+ | GLOBAL_SYM '.' { $$=OPT_GLOBAL; }
+ | LOCAL_SYM '.' { $$=OPT_SESSION; }
+ | SESSION_SYM '.' { $$=OPT_SESSION; }
+ ;
ext_option_value:
- sys_option_value
- | option_type2 option_value;
+ sys_option_value
+ | option_type2 option_value
+ ;
sys_option_value:
- option_type internal_variable_name equal set_expr_or_default
- {
- LEX *lex=Lex;
-
- if ($2.var == trg_new_row_fake_var)
+ option_type internal_variable_name equal set_expr_or_default
{
- /* We are in trigger and assigning value to field of new row */
- Item *it;
- Item_trigger_field *trg_fld;
- sp_instr_set_trigger_field *sp_fld;
- LINT_INIT(sp_fld);
- if ($1)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- if ($4)
- it= $4;
- else
+ LEX *lex=Lex;
+
+ if ($2.var == trg_new_row_fake_var)
{
- /* QQ: Shouldn't this be field's default value ? */
- it= new Item_null();
- }
+ /* We are in trigger and assigning value to field of new row */
+ Item *it;
+ Item_trigger_field *trg_fld;
+ sp_instr_set_trigger_field *sp_fld;
+ LINT_INIT(sp_fld);
+ if ($1)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ if ($4)
+ it= $4;
+ else
+ {
+ /* QQ: Shouldn't this be field's default value ? */
+ it= new Item_null();
+ }
- DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
- (lex->trg_chistics.event == TRG_EVENT_INSERT ||
- lex->trg_chistics.event == TRG_EVENT_UPDATE));
- if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
- Item_trigger_field::NEW_ROW,
- $2.base_name.str,
- UPDATE_ACL, FALSE)) ||
- !(sp_fld= new sp_instr_set_trigger_field(lex->sphead->
- instructions(),
- lex->spcont,
- trg_fld,
- it, lex)))
- MYSQL_YYABORT;
+ DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
+ (lex->trg_chistics.event == TRG_EVENT_INSERT ||
+ lex->trg_chistics.event == TRG_EVENT_UPDATE));
+ if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
+ Item_trigger_field::NEW_ROW,
+ $2.base_name.str,
+ UPDATE_ACL, FALSE)) ||
+ !(sp_fld= new sp_instr_set_trigger_field(lex->sphead->
+ instructions(),
+ lex->spcont,
+ trg_fld,
+ it, lex)))
+ MYSQL_YYABORT;
- /*
- Let us add this item to list of all Item_trigger_field
- objects in trigger.
- */
- lex->trg_table_fields.link_in_list((uchar *)trg_fld,
- (uchar **) &trg_fld->
- next_trg_field);
+ /*
+ Let us add this item to list of all Item_trigger_field
+ objects in trigger.
+ */
+ lex->trg_table_fields.link_in_list((uchar *)trg_fld,
+ (uchar **) &trg_fld->
+ next_trg_field);
- lex->sphead->add_instr(sp_fld);
- }
- else if ($2.var)
- { /* System variable */
- if ($1)
- lex->option_type= $1;
- lex->var_list.push_back(new set_var(lex->option_type, $2.var,
- &$2.base_name, $4));
- }
- else
- {
- /* An SP local variable */
- sp_pcontext *ctx= lex->spcont;
- sp_variable_t *spv;
- sp_instr_set *sp_set;
- Item *it;
- if ($1)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
+ lex->sphead->add_instr(sp_fld);
+ }
+ else if ($2.var)
+ { /* System variable */
+ if ($1)
+ lex->option_type= $1;
+ lex->var_list.push_back(new set_var(lex->option_type, $2.var,
+ &$2.base_name, $4));
}
+ else
+ {
+ /* An SP local variable */
+ sp_pcontext *ctx= lex->spcont;
+ sp_variable_t *spv;
+ sp_instr_set *sp_set;
+ Item *it;
+ if ($1)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
- spv= ctx->find_variable(&$2.base_name);
+ spv= ctx->find_variable(&$2.base_name);
- if ($4)
- it= $4;
- else if (spv->dflt)
- it= spv->dflt;
- else
- it= new Item_null();
- sp_set= new sp_instr_set(lex->sphead->instructions(), ctx,
- spv->offset, it, spv->type, lex, TRUE);
- lex->sphead->add_instr(sp_set);
+ if ($4)
+ it= $4;
+ else if (spv->dflt)
+ it= spv->dflt;
+ else
+ it= new Item_null();
+ sp_set= new sp_instr_set(lex->sphead->instructions(), ctx,
+ spv->offset, it, spv->type, lex, TRUE);
+ lex->sphead->add_instr(sp_set);
+ }
}
- }
| option_type TRANSACTION_SYM ISOLATION LEVEL_SYM isolation_types
- {
- LEX *lex=Lex;
- lex->option_type= $1;
- lex->var_list.push_back(new set_var(lex->option_type,
- find_sys_var(YYTHD, "tx_isolation"),
- &null_lex_str,
- new Item_int((int32) $5)));
- }
+ {
+ LEX *lex=Lex;
+ lex->option_type= $1;
+ lex->var_list.push_back(new set_var(lex->option_type,
+ find_sys_var(YYTHD, "tx_isolation"),
+ &null_lex_str,
+ new Item_int((int32) $5)));
+ }
;
option_value:
- '@' ident_or_text equal expr
- {
- Lex->var_list.push_back(new set_var_user(new Item_func_set_user_var($2,$4)));
- }
- | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default
- {
- LEX *lex=Lex;
- lex->var_list.push_back(new set_var($3, $4.var, &$4.base_name, $6));
- }
- | charset old_or_new_charset_name_or_default
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- $2= $2 ? $2: global_system_variables.character_set_client;
- lex->var_list.push_back(new set_var_collation_client($2,thd->variables.collation_database,$2));
- }
+ '@' ident_or_text equal expr
+ {
+ Lex->var_list.push_back(new set_var_user(new Item_func_set_user_var($2,$4)));
+ }
+ | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default
+ {
+ LEX *lex=Lex;
+ lex->var_list.push_back(new set_var($3, $4.var, &$4.base_name, $6));
+ }
+ | charset old_or_new_charset_name_or_default
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ $2= $2 ? $2: global_system_variables.character_set_client;
+ lex->var_list.push_back(new set_var_collation_client($2,thd->variables.collation_database,$2));
+ }
| NAMES_SYM equal expr
- {
- LEX *lex= Lex;
+ {
+ LEX *lex= Lex;
sp_pcontext *spc= lex->spcont;
- LEX_STRING names;
+ LEX_STRING names;
- names.str= (char *)"names";
- names.length= 5;
- if (spc && spc->find_variable(&names))
+ names.str= (char *)"names";
+ names.length= 5;
+ if (spc && spc->find_variable(&names))
my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
else
my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- | NAMES_SYM charset_name_or_default opt_collate
- {
- LEX *lex= Lex;
- $2= $2 ? $2 : global_system_variables.character_set_client;
- $3= $3 ? $3 : $2;
- if (!my_charset_same($2,$3))
- {
- my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
- $3->name, $2->csname);
- MYSQL_YYABORT;
- }
- lex->var_list.push_back(new set_var_collation_client($3,$3,$3));
- }
- | PASSWORD equal text_or_password
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- LEX_USER *user;
+ MYSQL_YYABORT;
+ }
+ | NAMES_SYM charset_name_or_default opt_collate
+ {
+ LEX *lex= Lex;
+ $2= $2 ? $2 : global_system_variables.character_set_client;
+ $3= $3 ? $3 : $2;
+ if (!my_charset_same($2,$3))
+ {
+ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
+ $3->name, $2->csname);
+ MYSQL_YYABORT;
+ }
+ lex->var_list.push_back(new set_var_collation_client($3,$3,$3));
+ }
+ | PASSWORD equal text_or_password
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ LEX_USER *user;
sp_pcontext *spc= lex->spcont;
- LEX_STRING pw;
+ LEX_STRING pw;
- pw.str= (char *)"password";
- pw.length= 8;
- if (spc && spc->find_variable(&pw))
- {
+ pw.str= (char *)"password";
+ pw.length= 8;
+ if (spc && spc->find_variable(&pw))
+ {
my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
- MYSQL_YYABORT;
- }
- if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
- MYSQL_YYABORT;
- user->host=null_lex_str;
- user->user.str=thd->security_ctx->priv_user;
- thd->lex->var_list.push_back(new set_var_password(user, $3));
- }
- | PASSWORD FOR_SYM user equal text_or_password
- {
- Lex->var_list.push_back(new set_var_password($3,$5));
- }
- ;
+ MYSQL_YYABORT;
+ }
+ if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
+ MYSQL_YYABORT;
+ user->host=null_lex_str;
+ user->user.str=thd->security_ctx->priv_user;
+ thd->lex->var_list.push_back(new set_var_password(user, $3));
+ }
+ | PASSWORD FOR_SYM user equal text_or_password
+ {
+ Lex->var_list.push_back(new set_var_password($3,$5));
+ }
+ ;
internal_variable_name:
- ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- sp_pcontext *spc= lex->spcont;
- sp_variable_t *spv;
-
- /* We have to lookup here since local vars can shadow sysvars */
- if (!spc || !(spv = spc->find_variable(&$1)))
- {
- /* Not an SP local variable */
- sys_var *tmp=find_sys_var(thd, $1.str, $1.length);
- if (!tmp)
- MYSQL_YYABORT;
- $$.var= tmp;
- $$.base_name= null_lex_str;
- if (spc && tmp == &sys_autocommit)
+ ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ sp_pcontext *spc= lex->spcont;
+ sp_variable_t *spv;
+
+ /* We have to lookup here since local vars can shadow sysvars */
+ if (!spc || !(spv = spc->find_variable(&$1)))
{
- /*
- We don't allow setting AUTOCOMMIT from a stored function
- or trigger.
- */
- lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
- }
- }
- else
- {
- /* An SP local variable */
- $$.var= NULL;
- $$.base_name= $1;
- }
- }
- | ident '.' ident
- {
+ /* Not an SP local variable */
+ sys_var *tmp=find_sys_var(thd, $1.str, $1.length);
+ if (!tmp)
+ MYSQL_YYABORT;
+ $$.var= tmp;
+ $$.base_name= null_lex_str;
+ if (spc && tmp == &sys_autocommit)
+ {
+ /*
+ We don't allow setting AUTOCOMMIT from a stored function
+ or trigger.
+ */
+ lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
+ }
+ }
+ else
+ {
+ /* An SP local variable */
+ $$.var= NULL;
+ $$.base_name= $1;
+ }
+ }
+ | ident '.' ident
+ {
LEX *lex= Lex;
if (check_reserved_words(&$1))
{
@@ -10542,522 +11021,533 @@ internal_variable_name:
$$.var= tmp;
$$.base_name= $1;
}
- }
- | DEFAULT '.' ident
- {
- sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length);
- if (!tmp)
- MYSQL_YYABORT;
- if (!tmp->is_struct())
- my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), $3.str);
- $$.var= tmp;
- $$.base_name.str= (char*) "default";
- $$.base_name.length= 7;
- }
+ }
+ | DEFAULT '.' ident
+ {
+ sys_var *tmp=find_sys_var(YYTHD, $3.str, $3.length);
+ if (!tmp)
+ MYSQL_YYABORT;
+ if (!tmp->is_struct())
+ my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), $3.str);
+ $$.var= tmp;
+ $$.base_name.str= (char*) "default";
+ $$.base_name.length= 7;
+ }
;
isolation_types:
- READ_SYM UNCOMMITTED_SYM { $$= ISO_READ_UNCOMMITTED; }
- | READ_SYM COMMITTED_SYM { $$= ISO_READ_COMMITTED; }
- | REPEATABLE_SYM READ_SYM { $$= ISO_REPEATABLE_READ; }
- | SERIALIZABLE_SYM { $$= ISO_SERIALIZABLE; }
- ;
+ READ_SYM UNCOMMITTED_SYM { $$= ISO_READ_UNCOMMITTED; }
+ | READ_SYM COMMITTED_SYM { $$= ISO_READ_COMMITTED; }
+ | REPEATABLE_SYM READ_SYM { $$= ISO_REPEATABLE_READ; }
+ | SERIALIZABLE_SYM { $$= ISO_SERIALIZABLE; }
+ ;
text_or_password:
- TEXT_STRING { $$=$1.str;}
- | PASSWORD '(' TEXT_STRING ')'
- {
- $$= $3.length ? YYTHD->variables.old_passwords ?
- Item_func_old_password::alloc(YYTHD, $3.str) :
- Item_func_password::alloc(YYTHD, $3.str) :
- $3.str;
- }
- | OLD_PASSWORD '(' TEXT_STRING ')'
- {
- $$= $3.length ? Item_func_old_password::alloc(YYTHD, $3.str) :
- $3.str;
- }
- ;
+ TEXT_STRING { $$=$1.str;}
+ | PASSWORD '(' TEXT_STRING ')'
+ {
+ $$= $3.length ? YYTHD->variables.old_passwords ?
+ Item_func_old_password::alloc(YYTHD, $3.str) :
+ Item_func_password::alloc(YYTHD, $3.str) :
+ $3.str;
+ }
+ | OLD_PASSWORD '(' TEXT_STRING ')'
+ {
+ $$= $3.length ? Item_func_old_password::alloc(YYTHD, $3.str) :
+ $3.str;
+ }
+ ;
set_expr_or_default:
- expr { $$=$1; }
- | DEFAULT { $$=0; }
- | ON { $$=new Item_string("ON", 2, system_charset_info); }
- | ALL { $$=new Item_string("ALL", 3, system_charset_info); }
- | BINARY { $$=new Item_string("binary", 6, system_charset_info); }
- ;
-
+ expr { $$=$1; }
+ | DEFAULT { $$=0; }
+ | ON { $$=new Item_string("ON", 2, system_charset_info); }
+ | ALL { $$=new Item_string("ALL", 3, system_charset_info); }
+ | BINARY { $$=new Item_string("binary", 6, system_charset_info); }
+ ;
/* Lock function */
lock:
- LOCK_SYM table_or_tables
- {
- LEX *lex= Lex;
-
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
- MYSQL_YYABORT;
- }
- lex->sql_command= SQLCOM_LOCK_TABLES;
- }
- table_lock_list
- {}
- ;
+ LOCK_SYM table_or_tables
+ {
+ LEX *lex= Lex;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_LOCK_TABLES;
+ }
+ table_lock_list
+ {}
+ ;
table_or_tables:
- TABLE_SYM
- | TABLES;
+ TABLE_SYM
+ | TABLES
+ ;
table_lock_list:
- table_lock
- | table_lock_list ',' table_lock;
+ table_lock
+ | table_lock_list ',' table_lock
+ ;
table_lock:
- table_ident opt_table_alias lock_option
- {
- if (!Select->add_table_to_list(YYTHD, $1, $2, 0, (thr_lock_type) $3))
- MYSQL_YYABORT;
- }
+ table_ident opt_table_alias lock_option
+ {
+ if (!Select->add_table_to_list(YYTHD, $1, $2, 0, (thr_lock_type) $3))
+ MYSQL_YYABORT;
+ }
;
lock_option:
- READ_SYM { $$=TL_READ_NO_INSERT; }
- | WRITE_SYM { $$=TL_WRITE_DEFAULT; }
- | LOW_PRIORITY WRITE_SYM { $$=TL_WRITE_LOW_PRIORITY; }
- | READ_SYM LOCAL_SYM { $$= TL_READ; }
+ READ_SYM { $$= TL_READ_NO_INSERT; }
+ | WRITE_SYM { $$= TL_WRITE_DEFAULT; }
+ | LOW_PRIORITY WRITE_SYM { $$= TL_WRITE_LOW_PRIORITY; }
+ | READ_SYM LOCAL_SYM { $$= TL_READ; }
;
unlock:
- UNLOCK_SYM
- {
- LEX *lex= Lex;
+ UNLOCK_SYM
+ {
+ LEX *lex= Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
- MYSQL_YYABORT;
- }
- lex->sql_command= SQLCOM_UNLOCK_TABLES;
- }
- table_or_tables
- {}
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_UNLOCK_TABLES;
+ }
+ table_or_tables
+ {}
;
-
/*
** Handler: direct access to ISAM functions
*/
handler:
- HANDLER_SYM table_ident OPEN_SYM opt_table_alias
- {
- LEX *lex= Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_HA_OPEN;
- if (!lex->current_select->add_table_to_list(lex->thd, $2, $4, 0))
- MYSQL_YYABORT;
- }
- | HANDLER_SYM table_ident_nodb CLOSE_SYM
- {
- LEX *lex= Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
- MYSQL_YYABORT;
- }
- lex->sql_command = SQLCOM_HA_CLOSE;
- if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
- MYSQL_YYABORT;
- }
- | HANDLER_SYM table_ident_nodb READ_SYM
- {
- LEX *lex=Lex;
- if (lex->sphead)
- {
- my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
- MYSQL_YYABORT;
- }
- lex->expr_allows_subselect= FALSE;
- lex->sql_command = SQLCOM_HA_READ;
- lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
- lex->current_select->select_limit= new Item_int((int32) 1);
- lex->current_select->offset_limit= 0;
- if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
- MYSQL_YYABORT;
- }
- handler_read_or_scan where_clause opt_limit_clause
- {
- Lex->expr_allows_subselect= TRUE;
- }
+ HANDLER_SYM table_ident OPEN_SYM opt_table_alias
+ {
+ LEX *lex= Lex;
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_HA_OPEN;
+ if (!lex->current_select->add_table_to_list(lex->thd, $2, $4, 0))
+ MYSQL_YYABORT;
+ }
+ | HANDLER_SYM table_ident_nodb CLOSE_SYM
+ {
+ LEX *lex= Lex;
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
+ MYSQL_YYABORT;
+ }
+ lex->sql_command = SQLCOM_HA_CLOSE;
+ if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
+ MYSQL_YYABORT;
+ }
+ | HANDLER_SYM table_ident_nodb READ_SYM
+ {
+ LEX *lex=Lex;
+ if (lex->sphead)
+ {
+ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
+ MYSQL_YYABORT;
+ }
+ lex->expr_allows_subselect= FALSE;
+ lex->sql_command = SQLCOM_HA_READ;
+ lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
+ lex->current_select->select_limit= new Item_int((int32) 1);
+ lex->current_select->offset_limit= 0;
+ if (!lex->current_select->add_table_to_list(lex->thd, $2, 0, 0))
+ MYSQL_YYABORT;
+ }
+ handler_read_or_scan where_clause opt_limit_clause
+ {
+ Lex->expr_allows_subselect= TRUE;
+ }
;
handler_read_or_scan:
- handler_scan_function { Lex->ident= null_lex_str; }
+ handler_scan_function { Lex->ident= null_lex_str; }
| ident handler_rkey_function { Lex->ident= $1; }
;
handler_scan_function:
- FIRST_SYM { Lex->ha_read_mode = RFIRST; }
- | NEXT_SYM { Lex->ha_read_mode = RNEXT; }
+ FIRST_SYM { Lex->ha_read_mode = RFIRST; }
+ | NEXT_SYM { Lex->ha_read_mode = RNEXT; }
;
handler_rkey_function:
- FIRST_SYM { Lex->ha_read_mode = RFIRST; }
- | NEXT_SYM { Lex->ha_read_mode = RNEXT; }
- | PREV_SYM { Lex->ha_read_mode = RPREV; }
- | LAST_SYM { Lex->ha_read_mode = RLAST; }
- | handler_rkey_mode
- {
- LEX *lex=Lex;
- lex->ha_read_mode = RKEY;
- lex->ha_rkey_mode=$1;
- if (!(lex->insert_list = new List_item))
- MYSQL_YYABORT;
- } '(' values ')' { }
+ FIRST_SYM { Lex->ha_read_mode = RFIRST; }
+ | NEXT_SYM { Lex->ha_read_mode = RNEXT; }
+ | PREV_SYM { Lex->ha_read_mode = RPREV; }
+ | LAST_SYM { Lex->ha_read_mode = RLAST; }
+ | handler_rkey_mode
+ {
+ LEX *lex=Lex;
+ lex->ha_read_mode = RKEY;
+ lex->ha_rkey_mode=$1;
+ if (!(lex->insert_list = new List_item))
+ MYSQL_YYABORT;
+ }
+ '(' values ')'
+ {}
;
handler_rkey_mode:
- EQ { $$=HA_READ_KEY_EXACT; }
- | GE { $$=HA_READ_KEY_OR_NEXT; }
- | LE { $$=HA_READ_KEY_OR_PREV; }
- | GT_SYM { $$=HA_READ_AFTER_KEY; }
- | LT { $$=HA_READ_BEFORE_KEY; }
+ EQ { $$=HA_READ_KEY_EXACT; }
+ | GE { $$=HA_READ_KEY_OR_NEXT; }
+ | LE { $$=HA_READ_KEY_OR_PREV; }
+ | GT_SYM { $$=HA_READ_AFTER_KEY; }
+ | LT { $$=HA_READ_BEFORE_KEY; }
;
/* GRANT / REVOKE */
revoke:
- REVOKE clear_privileges revoke_command
- {}
+ REVOKE clear_privileges revoke_command
+ {}
;
revoke_command:
- grant_privileges ON opt_table grant_ident FROM grant_list
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_REVOKE;
- lex->type= 0;
- }
- |
- grant_privileges ON FUNCTION_SYM grant_ident FROM grant_list
- {
- LEX *lex= Lex;
- if (lex->columns.elements)
+ grant_privileges ON opt_table grant_ident FROM grant_list
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- lex->sql_command= SQLCOM_REVOKE;
- lex->type= TYPE_ENUM_FUNCTION;
-
- }
- |
- grant_privileges ON PROCEDURE grant_ident FROM grant_list
- {
- LEX *lex= Lex;
- if (lex->columns.elements)
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_REVOKE;
+ lex->type= 0;
+ }
+ | grant_privileges ON FUNCTION_SYM grant_ident FROM grant_list
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- lex->sql_command= SQLCOM_REVOKE;
- lex->type= TYPE_ENUM_PROCEDURE;
- }
- |
- ALL opt_privileges ',' GRANT OPTION FROM grant_list
- {
- Lex->sql_command = SQLCOM_REVOKE_ALL;
- }
- ;
+ LEX *lex= Lex;
+ if (lex->columns.elements)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_REVOKE;
+ lex->type= TYPE_ENUM_FUNCTION;
+ }
+ | grant_privileges ON PROCEDURE grant_ident FROM grant_list
+ {
+ LEX *lex= Lex;
+ if (lex->columns.elements)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_REVOKE;
+ lex->type= TYPE_ENUM_PROCEDURE;
+ }
+ | ALL opt_privileges ',' GRANT OPTION FROM grant_list
+ {
+ Lex->sql_command = SQLCOM_REVOKE_ALL;
+ }
+ ;
grant:
- GRANT clear_privileges grant_command
- {}
+ GRANT clear_privileges grant_command
+ {}
;
grant_command:
- grant_privileges ON opt_table grant_ident TO_SYM grant_list
- require_clause grant_options
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_GRANT;
- lex->type= 0;
- }
- |
- grant_privileges ON FUNCTION_SYM grant_ident TO_SYM grant_list
- require_clause grant_options
- {
- LEX *lex= Lex;
- if (lex->columns.elements)
+ grant_privileges ON opt_table grant_ident TO_SYM grant_list
+ require_clause grant_options
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- lex->sql_command= SQLCOM_GRANT;
- lex->type= TYPE_ENUM_FUNCTION;
- }
- |
- grant_privileges ON PROCEDURE grant_ident TO_SYM grant_list
- require_clause grant_options
- {
- LEX *lex= Lex;
- if (lex->columns.elements)
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_GRANT;
+ lex->type= 0;
+ }
+ | grant_privileges ON FUNCTION_SYM grant_ident TO_SYM grant_list
+ require_clause grant_options
{
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
+ LEX *lex= Lex;
+ if (lex->columns.elements)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_GRANT;
+ lex->type= TYPE_ENUM_FUNCTION;
+ }
+ | grant_privileges ON PROCEDURE grant_ident TO_SYM grant_list
+ require_clause grant_options
+ {
+ LEX *lex= Lex;
+ if (lex->columns.elements)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ lex->sql_command= SQLCOM_GRANT;
+ lex->type= TYPE_ENUM_PROCEDURE;
}
- lex->sql_command= SQLCOM_GRANT;
- lex->type= TYPE_ENUM_PROCEDURE;
- }
;
opt_table:
- /* Empty */
- | TABLE_SYM ;
-
+ /* Empty */
+ | TABLE_SYM
+ ;
+
grant_privileges:
- object_privilege_list { }
- | ALL opt_privileges
- {
- Lex->all_privileges= 1;
- Lex->grant= GLOBAL_ACLS;
- }
+ object_privilege_list {}
+ | ALL opt_privileges
+ {
+ Lex->all_privileges= 1;
+ Lex->grant= GLOBAL_ACLS;
+ }
;
opt_privileges:
- /* empty */
- | PRIVILEGES
- ;
+ /* empty */
+ | PRIVILEGES
+ ;
object_privilege_list:
- object_privilege
- | object_privilege_list ',' object_privilege;
+ object_privilege
+ | object_privilege_list ',' object_privilege
+ ;
object_privilege:
- SELECT_SYM { Lex->which_columns = SELECT_ACL;} opt_column_list {}
- | INSERT { Lex->which_columns = INSERT_ACL;} opt_column_list {}
- | UPDATE_SYM { Lex->which_columns = UPDATE_ACL; } opt_column_list {}
- | REFERENCES { Lex->which_columns = REFERENCES_ACL;} opt_column_list {}
- | DELETE_SYM { Lex->grant |= DELETE_ACL;}
- | USAGE {}
- | INDEX_SYM { Lex->grant |= INDEX_ACL;}
- | ALTER { Lex->grant |= ALTER_ACL;}
- | CREATE { Lex->grant |= CREATE_ACL;}
- | DROP { Lex->grant |= DROP_ACL;}
- | EXECUTE_SYM { Lex->grant |= EXECUTE_ACL;}
- | RELOAD { Lex->grant |= RELOAD_ACL;}
- | SHUTDOWN { Lex->grant |= SHUTDOWN_ACL;}
- | PROCESS { Lex->grant |= PROCESS_ACL;}
- | FILE_SYM { Lex->grant |= FILE_ACL;}
- | GRANT OPTION { Lex->grant |= GRANT_ACL;}
- | SHOW DATABASES { Lex->grant |= SHOW_DB_ACL;}
- | SUPER_SYM { Lex->grant |= SUPER_ACL;}
- | CREATE TEMPORARY TABLES { Lex->grant |= CREATE_TMP_ACL;}
- | LOCK_SYM TABLES { Lex->grant |= LOCK_TABLES_ACL; }
- | REPLICATION SLAVE { Lex->grant |= REPL_SLAVE_ACL; }
- | REPLICATION CLIENT_SYM { Lex->grant |= REPL_CLIENT_ACL; }
- | CREATE VIEW_SYM { Lex->grant |= CREATE_VIEW_ACL; }
- | SHOW VIEW_SYM { Lex->grant |= SHOW_VIEW_ACL; }
- | CREATE ROUTINE_SYM { Lex->grant |= CREATE_PROC_ACL; }
- | ALTER ROUTINE_SYM { Lex->grant |= ALTER_PROC_ACL; }
- | CREATE USER { Lex->grant |= CREATE_USER_ACL; }
- | EVENT_SYM { Lex->grant |= EVENT_ACL;}
- | TRIGGER_SYM { Lex->grant |= TRIGGER_ACL; }
- ;
-
+ SELECT_SYM
+ { Lex->which_columns = SELECT_ACL;}
+ opt_column_list {}
+ | INSERT
+ { Lex->which_columns = INSERT_ACL;}
+ opt_column_list {}
+ | UPDATE_SYM
+ { Lex->which_columns = UPDATE_ACL; }
+ opt_column_list {}
+ | REFERENCES
+ { Lex->which_columns = REFERENCES_ACL;}
+ opt_column_list {}
+ | DELETE_SYM { Lex->grant |= DELETE_ACL;}
+ | USAGE {}
+ | INDEX_SYM { Lex->grant |= INDEX_ACL;}
+ | ALTER { Lex->grant |= ALTER_ACL;}
+ | CREATE { Lex->grant |= CREATE_ACL;}
+ | DROP { Lex->grant |= DROP_ACL;}
+ | EXECUTE_SYM { Lex->grant |= EXECUTE_ACL;}
+ | RELOAD { Lex->grant |= RELOAD_ACL;}
+ | SHUTDOWN { Lex->grant |= SHUTDOWN_ACL;}
+ | PROCESS { Lex->grant |= PROCESS_ACL;}
+ | FILE_SYM { Lex->grant |= FILE_ACL;}
+ | GRANT OPTION { Lex->grant |= GRANT_ACL;}
+ | SHOW DATABASES { Lex->grant |= SHOW_DB_ACL;}
+ | SUPER_SYM { Lex->grant |= SUPER_ACL;}
+ | CREATE TEMPORARY TABLES { Lex->grant |= CREATE_TMP_ACL;}
+ | LOCK_SYM TABLES { Lex->grant |= LOCK_TABLES_ACL; }
+ | REPLICATION SLAVE { Lex->grant |= REPL_SLAVE_ACL; }
+ | REPLICATION CLIENT_SYM { Lex->grant |= REPL_CLIENT_ACL; }
+ | CREATE VIEW_SYM { Lex->grant |= CREATE_VIEW_ACL; }
+ | SHOW VIEW_SYM { Lex->grant |= SHOW_VIEW_ACL; }
+ | CREATE ROUTINE_SYM { Lex->grant |= CREATE_PROC_ACL; }
+ | ALTER ROUTINE_SYM { Lex->grant |= ALTER_PROC_ACL; }
+ | CREATE USER { Lex->grant |= CREATE_USER_ACL; }
+ | EVENT_SYM { Lex->grant |= EVENT_ACL;}
+ | TRIGGER_SYM { Lex->grant |= TRIGGER_ACL; }
+ ;
opt_and:
- /* empty */ {}
- | AND_SYM {}
- ;
+ /* empty */ {}
+ | AND_SYM {}
+ ;
require_list:
- require_list_element opt_and require_list
- | require_list_element
- ;
+ require_list_element opt_and require_list
+ | require_list_element
+ ;
require_list_element:
- SUBJECT_SYM TEXT_STRING
- {
- LEX *lex=Lex;
- if (lex->x509_subject)
- {
- my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
- MYSQL_YYABORT;
- }
- lex->x509_subject=$2.str;
- }
- | ISSUER_SYM TEXT_STRING
- {
- LEX *lex=Lex;
- if (lex->x509_issuer)
- {
- my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
- MYSQL_YYABORT;
- }
- lex->x509_issuer=$2.str;
- }
- | CIPHER_SYM TEXT_STRING
- {
- LEX *lex=Lex;
- if (lex->ssl_cipher)
- {
- my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
- MYSQL_YYABORT;
- }
- lex->ssl_cipher=$2.str;
- }
- ;
+ SUBJECT_SYM TEXT_STRING
+ {
+ LEX *lex=Lex;
+ if (lex->x509_subject)
+ {
+ my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
+ MYSQL_YYABORT;
+ }
+ lex->x509_subject=$2.str;
+ }
+ | ISSUER_SYM TEXT_STRING
+ {
+ LEX *lex=Lex;
+ if (lex->x509_issuer)
+ {
+ my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
+ MYSQL_YYABORT;
+ }
+ lex->x509_issuer=$2.str;
+ }
+ | CIPHER_SYM TEXT_STRING
+ {
+ LEX *lex=Lex;
+ if (lex->ssl_cipher)
+ {
+ my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
+ MYSQL_YYABORT;
+ }
+ lex->ssl_cipher=$2.str;
+ }
+ ;
grant_ident:
- '*'
- {
- LEX *lex= Lex;
+ '*'
+ {
+ LEX *lex= Lex;
size_t dummy;
if (lex->copy_db_to(&lex->current_select->db, &dummy))
MYSQL_YYABORT;
- if (lex->grant == GLOBAL_ACLS)
- lex->grant = DB_ACLS & ~GRANT_ACL;
- else if (lex->columns.elements)
- {
- my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
+ if (lex->grant == GLOBAL_ACLS)
+ lex->grant = DB_ACLS & ~GRANT_ACL;
+ else if (lex->columns.elements)
+ {
+ my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
- MYSQL_YYABORT;
- }
- }
- | ident '.' '*'
- {
- LEX *lex= Lex;
- lex->current_select->db = $1.str;
- if (lex->grant == GLOBAL_ACLS)
- lex->grant = DB_ACLS & ~GRANT_ACL;
- else if (lex->columns.elements)
- {
- my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
+ MYSQL_YYABORT;
+ }
+ }
+ | ident '.' '*'
+ {
+ LEX *lex= Lex;
+ lex->current_select->db = $1.str;
+ if (lex->grant == GLOBAL_ACLS)
+ lex->grant = DB_ACLS & ~GRANT_ACL;
+ else if (lex->columns.elements)
+ {
+ my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
- MYSQL_YYABORT;
- }
- }
- | '*' '.' '*'
- {
- LEX *lex= Lex;
- lex->current_select->db = NULL;
- if (lex->grant == GLOBAL_ACLS)
- lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
- else if (lex->columns.elements)
- {
- my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
+ MYSQL_YYABORT;
+ }
+ }
+ | '*' '.' '*'
+ {
+ LEX *lex= Lex;
+ lex->current_select->db = NULL;
+ if (lex->grant == GLOBAL_ACLS)
+ lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
+ else if (lex->columns.elements)
+ {
+ my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
- MYSQL_YYABORT;
- }
- }
- | table_ident
- {
- LEX *lex=Lex;
- if (!lex->current_select->add_table_to_list(lex->thd, $1,NULL,
+ MYSQL_YYABORT;
+ }
+ }
+ | table_ident
+ {
+ LEX *lex=Lex;
+ if (!lex->current_select->add_table_to_list(lex->thd, $1,NULL,
TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- if (lex->grant == GLOBAL_ACLS)
- lex->grant = TABLE_ACLS & ~GRANT_ACL;
- }
- ;
-
+ MYSQL_YYABORT;
+ if (lex->grant == GLOBAL_ACLS)
+ lex->grant = TABLE_ACLS & ~GRANT_ACL;
+ }
+ ;
user_list:
- user { if (Lex->users_list.push_back($1)) MYSQL_YYABORT;}
- | user_list ',' user
- {
- if (Lex->users_list.push_back($3))
- MYSQL_YYABORT;
- }
- ;
-
+ user
+ {
+ if (Lex->users_list.push_back($1))
+ MYSQL_YYABORT;
+ }
+ | user_list ',' user
+ {
+ if (Lex->users_list.push_back($3))
+ MYSQL_YYABORT;
+ }
+ ;
grant_list:
- grant_user { if (Lex->users_list.push_back($1)) MYSQL_YYABORT;}
- | grant_list ',' grant_user
- {
- if (Lex->users_list.push_back($3))
- MYSQL_YYABORT;
- }
- ;
-
+ grant_user
+ {
+ if (Lex->users_list.push_back($1))
+ MYSQL_YYABORT;
+ }
+ | grant_list ',' grant_user
+ {
+ if (Lex->users_list.push_back($3))
+ MYSQL_YYABORT;
+ }
+ ;
grant_user:
- user IDENTIFIED_SYM BY TEXT_STRING
- {
- $$=$1; $1->password=$4;
- if ($4.length)
- {
- if (YYTHD->variables.old_passwords)
- {
- char *buff=
- (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
- if (buff)
- make_scrambled_password_323(buff, $4.str);
- $1->password.str= buff;
- $1->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
- }
- else
- {
- char *buff=
- (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
- if (buff)
- make_scrambled_password(buff, $4.str);
- $1->password.str= buff;
- $1->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
- }
- }
- }
- | user IDENTIFIED_SYM BY PASSWORD TEXT_STRING
- { $$= $1; $1->password= $5; }
- | user
- { $$= $1; $1->password= null_lex_str; }
+ user IDENTIFIED_SYM BY TEXT_STRING
+ {
+ $$=$1; $1->password=$4;
+ if ($4.length)
+ {
+ if (YYTHD->variables.old_passwords)
+ {
+ char *buff=
+ (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
+ if (buff)
+ make_scrambled_password_323(buff, $4.str);
+ $1->password.str= buff;
+ $1->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
+ }
+ else
+ {
+ char *buff=
+ (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
+ if (buff)
+ make_scrambled_password(buff, $4.str);
+ $1->password.str= buff;
+ $1->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
+ }
+ }
+ }
+ | user IDENTIFIED_SYM BY PASSWORD TEXT_STRING
+ { $$= $1; $1->password= $5; }
+ | user
+ { $$= $1; $1->password= null_lex_str; }
;
-
opt_column_list:
- /* empty */
- {
- LEX *lex=Lex;
- lex->grant |= lex->which_columns;
- }
- | '(' column_list ')';
+ /* empty */
+ {
+ LEX *lex=Lex;
+ lex->grant |= lex->which_columns;
+ }
+ | '(' column_list ')'
+ ;
column_list:
- column_list ',' column_list_id
- | column_list_id;
+ column_list ',' column_list_id
+ | column_list_id
+ ;
column_list_id:
- ident
- {
- String *new_str = new (YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info);
- List_iterator <LEX_COLUMN> iter(Lex->columns);
- class LEX_COLUMN *point;
- LEX *lex=Lex;
- while ((point=iter++))
- {
- if (!my_strcasecmp(system_charset_info,
- point->column.ptr(), new_str->ptr()))
- break;
- }
- lex->grant_tot_col|= lex->which_columns;
- if (point)
- point->rights |= lex->which_columns;
- else
- lex->columns.push_back(new LEX_COLUMN (*new_str,lex->which_columns));
- }
- ;
-
-
-require_clause: /* empty */
+ ident
+ {
+ String *new_str = new (YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info);
+ List_iterator <LEX_COLUMN> iter(Lex->columns);
+ class LEX_COLUMN *point;
+ LEX *lex=Lex;
+ while ((point=iter++))
+ {
+ if (!my_strcasecmp(system_charset_info,
+ point->column.ptr(), new_str->ptr()))
+ break;
+ }
+ lex->grant_tot_col|= lex->which_columns;
+ if (point)
+ point->rights |= lex->which_columns;
+ else
+ lex->columns.push_back(new LEX_COLUMN (*new_str,lex->which_columns));
+ }
+ ;
+
+require_clause:
+ /* empty */
| REQUIRE_SYM require_list
{
Lex->ssl_type=SSL_TYPE_SPECIFIED;
@@ -11070,220 +11560,223 @@ require_clause: /* empty */
{
Lex->ssl_type=SSL_TYPE_X509;
}
- | REQUIRE_SYM NONE_SYM
- {
- Lex->ssl_type=SSL_TYPE_NONE;
- }
- ;
+ | REQUIRE_SYM NONE_SYM
+ {
+ Lex->ssl_type=SSL_TYPE_NONE;
+ }
+ ;
grant_options:
- /* empty */ {}
- | WITH grant_option_list;
+ /* empty */ {}
+ | WITH grant_option_list
+ ;
grant_option_list:
- grant_option_list grant_option {}
- | grant_option {}
+ grant_option_list grant_option {}
+ | grant_option {}
;
grant_option:
- GRANT OPTION { Lex->grant |= GRANT_ACL;}
+ GRANT OPTION { Lex->grant |= GRANT_ACL;}
| MAX_QUERIES_PER_HOUR ulong_num
- {
- LEX *lex=Lex;
- lex->mqh.questions=$2;
- lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
- }
+ {
+ LEX *lex=Lex;
+ lex->mqh.questions=$2;
+ lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
+ }
| MAX_UPDATES_PER_HOUR ulong_num
- {
- LEX *lex=Lex;
- lex->mqh.updates=$2;
- lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
- }
+ {
+ LEX *lex=Lex;
+ lex->mqh.updates=$2;
+ lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
+ }
| MAX_CONNECTIONS_PER_HOUR ulong_num
- {
- LEX *lex=Lex;
- lex->mqh.conn_per_hour= $2;
- lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
- }
+ {
+ LEX *lex=Lex;
+ lex->mqh.conn_per_hour= $2;
+ lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
+ }
| MAX_USER_CONNECTIONS_SYM ulong_num
- {
- LEX *lex=Lex;
- lex->mqh.user_conn= $2;
- lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
- }
+ {
+ LEX *lex=Lex;
+ lex->mqh.user_conn= $2;
+ lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
+ }
;
begin:
- BEGIN_SYM
- {
- LEX *lex=Lex;
- lex->sql_command = SQLCOM_BEGIN;
- lex->start_transaction_opt= 0;
- }
- opt_work {}
- ;
+ BEGIN_SYM
+ {
+ LEX *lex=Lex;
+ lex->sql_command = SQLCOM_BEGIN;
+ lex->start_transaction_opt= 0;
+ }
+ opt_work {}
+ ;
opt_work:
- /* empty */ {}
- | WORK_SYM {}
+ /* empty */ {}
+ | WORK_SYM {}
;
opt_chain:
- /* empty */ { $$= (YYTHD->variables.completion_type == 1); }
- | AND_SYM NO_SYM CHAIN_SYM { $$=0; }
- | AND_SYM CHAIN_SYM { $$=1; }
- ;
+ /* empty */
+ { $$= (YYTHD->variables.completion_type == 1); }
+ | AND_SYM NO_SYM CHAIN_SYM { $$=0; }
+ | AND_SYM CHAIN_SYM { $$=1; }
+ ;
opt_release:
- /* empty */ { $$= (YYTHD->variables.completion_type == 2); }
- | RELEASE_SYM { $$=1; }
- | NO_SYM RELEASE_SYM { $$=0; }
- ;
-
+ /* empty */
+ { $$= (YYTHD->variables.completion_type == 2); }
+ | RELEASE_SYM { $$=1; }
+ | NO_SYM RELEASE_SYM { $$=0; }
+;
+
opt_savepoint:
- /* empty */ {}
- | SAVEPOINT_SYM {}
- ;
+ /* empty */ {}
+ | SAVEPOINT_SYM {}
+ ;
commit:
- COMMIT_SYM opt_work opt_chain opt_release
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_COMMIT;
- lex->tx_chain= $3;
- lex->tx_release= $4;
- }
- ;
+ COMMIT_SYM opt_work opt_chain opt_release
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_COMMIT;
+ lex->tx_chain= $3;
+ lex->tx_release= $4;
+ }
+ ;
rollback:
- ROLLBACK_SYM opt_work opt_chain opt_release
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_ROLLBACK;
- lex->tx_chain= $3;
- lex->tx_release= $4;
- }
- | ROLLBACK_SYM opt_work
- TO_SYM opt_savepoint ident
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
- lex->ident= $5;
- }
- ;
+ ROLLBACK_SYM opt_work opt_chain opt_release
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_ROLLBACK;
+ lex->tx_chain= $3;
+ lex->tx_release= $4;
+ }
+ | ROLLBACK_SYM opt_work
+ TO_SYM opt_savepoint ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
+ lex->ident= $5;
+ }
+ ;
savepoint:
- SAVEPOINT_SYM ident
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_SAVEPOINT;
- lex->ident= $2;
- }
- ;
+ SAVEPOINT_SYM ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_SAVEPOINT;
+ lex->ident= $2;
+ }
+ ;
release:
- RELEASE_SYM SAVEPOINT_SYM ident
- {
- LEX *lex=Lex;
- lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
- lex->ident= $3;
- }
- ;
-
+ RELEASE_SYM SAVEPOINT_SYM ident
+ {
+ LEX *lex=Lex;
+ lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
+ lex->ident= $3;
+ }
+ ;
+
/*
UNIONS : glue selects together
*/
union_clause:
- /* empty */ {}
- | union_list
- ;
+ /* empty */ {}
+ | union_list
+ ;
union_list:
- UNION_SYM union_option
- {
- LEX *lex=Lex;
- if (lex->result)
- {
- /* Only the last SELECT can have INTO...... */
- my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
- MYSQL_YYABORT;
- }
- if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- /* This counter shouldn't be incremented for UNION parts */
- Lex->nest_level--;
- if (mysql_new_select(lex, 0))
- MYSQL_YYABORT;
- mysql_init_select(lex);
- lex->current_select->linkage=UNION_TYPE;
- if ($2) /* UNION DISTINCT - remember position */
- lex->current_select->master_unit()->union_distinct=
- lex->current_select;
- }
- select_init
- {
- /*
- Remove from the name resolution context stack the context of the
- last select in the union.
- */
- Lex->pop_context();
- }
- ;
+ UNION_SYM union_option
+ {
+ LEX *lex=Lex;
+ if (lex->result)
+ {
+ /* Only the last SELECT can have INTO...... */
+ my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
+ MYSQL_YYABORT;
+ }
+ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ /* This counter shouldn't be incremented for UNION parts */
+ Lex->nest_level--;
+ if (mysql_new_select(lex, 0))
+ MYSQL_YYABORT;
+ mysql_init_select(lex);
+ lex->current_select->linkage=UNION_TYPE;
+ if ($2) /* UNION DISTINCT - remember position */
+ lex->current_select->master_unit()->union_distinct=
+ lex->current_select;
+ }
+ select_init
+ {
+ /*
+ Remove from the name resolution context stack the context of the
+ last select in the union.
+ */
+ Lex->pop_context();
+ }
+ ;
union_opt:
- /* Empty */ { $$= 0; }
- | union_list { $$= 1; }
- | union_order_or_limit { $$= 1; }
- ;
+ /* Empty */ { $$= 0; }
+ | union_list { $$= 1; }
+ | union_order_or_limit { $$= 1; }
+ ;
union_order_or_limit:
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
- SELECT_LEX *sel= lex->current_select;
- SELECT_LEX_UNIT *unit= sel->master_unit();
- SELECT_LEX *fake= unit->fake_select_lex;
- if (fake)
- {
- unit->global_parameters= fake;
- fake->no_table_names_allowed= 1;
- lex->current_select= fake;
- }
- thd->where= "global ORDER clause";
- }
- order_or_limit
- {
- THD *thd= YYTHD;
- thd->lex->current_select->no_table_names_allowed= 0;
- thd->where= "";
- }
- ;
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
+ SELECT_LEX *sel= lex->current_select;
+ SELECT_LEX_UNIT *unit= sel->master_unit();
+ SELECT_LEX *fake= unit->fake_select_lex;
+ if (fake)
+ {
+ unit->global_parameters= fake;
+ fake->no_table_names_allowed= 1;
+ lex->current_select= fake;
+ }
+ thd->where= "global ORDER clause";
+ }
+ order_or_limit
+ {
+ THD *thd= YYTHD;
+ thd->lex->current_select->no_table_names_allowed= 0;
+ thd->where= "";
+ }
+ ;
order_or_limit:
- order_clause opt_limit_clause_init
- | limit_clause
- ;
+ order_clause opt_limit_clause_init
+ | limit_clause
+ ;
union_option:
- /* empty */ { $$=1; }
- | DISTINCT { $$=1; }
- | ALL { $$=0; }
+ /* empty */ { $$=1; }
+ | DISTINCT { $$=1; }
+ | ALL { $$=0; }
;
subselect:
- SELECT_SYM subselect_start subselect_init subselect_end
- {
- $$= $3;
- }
+ SELECT_SYM subselect_start subselect_init subselect_end
+ {
+ $$= $3;
+ }
| '(' subselect_start subselect ')'
{
- THD *thd= YYTHD;
+ THD *thd= YYTHD;
/*
note that a local variable can't be used for
$3 as it's used in local variable construction
@@ -11298,49 +11791,53 @@ subselect:
while ((item= it++))
add_item_to_list(thd, item);
}
- union_clause subselect_end { $$= $3; };
+ union_clause subselect_end { $$= $3; }
+ ;
subselect_init:
- select_init2
- {
- $$= Lex->current_select->master_unit()->first_select();
- };
+ select_init2
+ {
+ $$= Lex->current_select->master_unit()->first_select();
+ }
+ ;
subselect_start:
- {
- LEX *lex=Lex;
- if (!lex->expr_allows_subselect ||
- lex->sql_command == (int)SQLCOM_PURGE)
- {
- my_parse_error(ER(ER_SYNTAX_ERROR));
- MYSQL_YYABORT;
- }
- /*
- we are making a "derived table" for the parenthesis
- as we need to have a lex level to fit the union
- after the parenthesis, e.g.
- (SELECT .. ) UNION ... becomes
- SELECT * FROM ((SELECT ...) UNION ...)
- */
- if (mysql_new_select(Lex, 1))
- MYSQL_YYABORT;
- };
+ {
+ LEX *lex=Lex;
+ if (!lex->expr_allows_subselect ||
+ lex->sql_command == (int)SQLCOM_PURGE)
+ {
+ my_parse_error(ER(ER_SYNTAX_ERROR));
+ MYSQL_YYABORT;
+ }
+ /*
+ we are making a "derived table" for the parenthesis
+ as we need to have a lex level to fit the union
+ after the parenthesis, e.g.
+ (SELECT .. ) UNION ... becomes
+ SELECT * FROM ((SELECT ...) UNION ...)
+ */
+ if (mysql_new_select(Lex, 1))
+ MYSQL_YYABORT;
+ }
+ ;
subselect_end:
- {
- LEX *lex=Lex;
- lex->pop_context();
- SELECT_LEX *child= lex->current_select;
- lex->current_select = lex->current_select->return_after_parsing();
- lex->nest_level--;
- lex->current_select->n_child_sum_items += child->n_sum_items;
- /*
- A subselect can add fields to an outer select. Reserve space for
- them.
- */
- lex->current_select->select_n_where_fields+=
+ {
+ LEX *lex=Lex;
+ lex->pop_context();
+ SELECT_LEX *child= lex->current_select;
+ lex->current_select = lex->current_select->return_after_parsing();
+ lex->nest_level--;
+ lex->current_select->n_child_sum_items += child->n_sum_items;
+ /*
+ A subselect can add fields to an outer select. Reserve space for
+ them.
+ */
+ lex->current_select->select_n_where_fields+=
child->select_n_where_fields;
- };
+ }
+ ;
/**************************************************************************
@@ -11349,22 +11846,22 @@ subselect_end:
**************************************************************************/
view_or_trigger_or_sp_or_event:
- definer view_or_trigger_or_sp_or_event_tail
- {}
- | view_replace_or_algorithm definer view_tail
- {}
- ;
+ definer view_or_trigger_or_sp_or_event_tail
+ {}
+ | view_replace_or_algorithm definer view_tail
+ {}
+ ;
view_or_trigger_or_sp_or_event_tail:
- view_tail
- {}
- | trigger_tail
- {}
- | sp_tail
- {}
- | event_tail
- {}
- ;
+ view_tail
+ {}
+ | trigger_tail
+ {}
+ | sp_tail
+ {}
+ | event_tail
+ {}
+ ;
/**************************************************************************
@@ -11373,22 +11870,22 @@ view_or_trigger_or_sp_or_event_tail:
**************************************************************************/
definer:
- /* empty */
- {
- /*
- We have to distinguish missing DEFINER-clause from case when
- CURRENT_USER specified as definer explicitly in order to properly
- handle CREATE TRIGGER statements which come to replication thread
- from older master servers (i.e. to create non-suid trigger in this
- case).
- */
- YYTHD->lex->definer= 0;
- }
- | DEFINER_SYM EQ user
- {
- YYTHD->lex->definer= get_current_user(YYTHD, $3);
- }
- ;
+ /* empty */
+ {
+ /*
+ We have to distinguish missing DEFINER-clause from case when
+ CURRENT_USER specified as definer explicitly in order to properly
+ handle CREATE TRIGGER statements which come to replication thread
+ from older master servers (i.e. to create non-suid trigger in this
+ case).
+ */
+ YYTHD->lex->definer= 0;
+ }
+ | DEFINER_SYM EQ user
+ {
+ YYTHD->lex->definer= get_current_user(YYTHD, $3);
+ }
+ ;
/**************************************************************************
@@ -11397,128 +11894,128 @@ definer:
**************************************************************************/
view_replace_or_algorithm:
- view_replace
- {}
- | view_replace view_algorithm
- {}
- | view_algorithm
- {}
- ;
+ view_replace
+ {}
+ | view_replace view_algorithm
+ {}
+ | view_algorithm
+ {}
+ ;
view_replace:
- OR_SYM REPLACE
- { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
- ;
+ OR_SYM REPLACE
+ { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
+ ;
view_algorithm:
- ALGORITHM_SYM EQ UNDEFINED_SYM
- { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
- | ALGORITHM_SYM EQ MERGE_SYM
- { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
- | ALGORITHM_SYM EQ TEMPTABLE_SYM
- { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
- ;
+ ALGORITHM_SYM EQ UNDEFINED_SYM
+ { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
+ | ALGORITHM_SYM EQ MERGE_SYM
+ { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
+ | ALGORITHM_SYM EQ TEMPTABLE_SYM
+ { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
+ ;
view_suid:
- /* empty */
- { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
- | SQL_SYM SECURITY_SYM DEFINER_SYM
- { Lex->create_view_suid= VIEW_SUID_DEFINER; }
- | SQL_SYM SECURITY_SYM INVOKER_SYM
- { Lex->create_view_suid= VIEW_SUID_INVOKER; }
- ;
+ /* empty */
+ { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
+ | SQL_SYM SECURITY_SYM DEFINER_SYM
+ { Lex->create_view_suid= VIEW_SUID_DEFINER; }
+ | SQL_SYM SECURITY_SYM INVOKER_SYM
+ { Lex->create_view_suid= VIEW_SUID_INVOKER; }
+ ;
view_tail:
- view_suid VIEW_SYM table_ident
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- lex->sql_command= SQLCOM_CREATE_VIEW;
- /* first table in list is target VIEW name */
- if (!lex->select_lex.add_table_to_list(thd, $3, NULL, TL_OPTION_UPDATING))
- MYSQL_YYABORT;
- }
- view_list_opt AS
- {
- THD *thd= YYTHD;
- Lex_input_stream *lip= thd->m_lip;
-
- lip->body_utf8_start(thd, lip->get_cpp_ptr());
- }
- view_select
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- lip->body_utf8_append(lip->get_cpp_ptr());
-
- lex->view_body_utf8.str= thd->strmake(lip->get_body_utf8_str(),
- lip->get_body_utf8_length());
- lex->view_body_utf8.length= lip->get_body_utf8_length();
-
- trim_whitespace(&my_charset_utf8_general_ci, &lex->view_body_utf8);
- }
- ;
+ view_suid VIEW_SYM table_ident
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ lex->sql_command= SQLCOM_CREATE_VIEW;
+ /* first table in list is target VIEW name */
+ if (!lex->select_lex.add_table_to_list(thd, $3, NULL, TL_OPTION_UPDATING))
+ MYSQL_YYABORT;
+ }
+ view_list_opt AS
+ {
+ THD *thd= YYTHD;
+ Lex_input_stream *lip= thd->m_lip;
+
+ lip->body_utf8_start(thd, lip->get_cpp_ptr());
+ }
+ view_select
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+
+ lip->body_utf8_append(lip->get_cpp_ptr());
+
+ lex->view_body_utf8.str= thd->strmake(lip->get_body_utf8_str(),
+ lip->get_body_utf8_length());
+ lex->view_body_utf8.length= lip->get_body_utf8_length();
+
+ trim_whitespace(&my_charset_utf8_general_ci, &lex->view_body_utf8);
+ }
+ ;
view_list_opt:
- /* empty */
- {}
- | '(' view_list ')'
- ;
+ /* empty */
+ {}
+ | '(' view_list ')'
+ ;
view_list:
- ident
- {
- Lex->view_list.push_back((LEX_STRING*)
- sql_memdup(&$1, sizeof(LEX_STRING)));
- }
- | view_list ',' ident
- {
- Lex->view_list.push_back((LEX_STRING*)
- sql_memdup(&$3, sizeof(LEX_STRING)));
- }
- ;
+ ident
+ {
+ Lex->view_list.push_back((LEX_STRING*)
+ sql_memdup(&$1, sizeof(LEX_STRING)));
+ }
+ | view_list ',' ident
+ {
+ Lex->view_list.push_back((LEX_STRING*)
+ sql_memdup(&$3, sizeof(LEX_STRING)));
+ }
+ ;
view_select:
- {
- THD *thd= YYTHD;
- LEX *lex= Lex;
- Lex_input_stream *lip= thd->m_lip;
- lex->parsing_options.allows_variable= FALSE;
- lex->parsing_options.allows_select_into= FALSE;
- lex->parsing_options.allows_select_procedure= FALSE;
- lex->parsing_options.allows_derived= FALSE;
- lex->create_view_select_start= lip->get_cpp_ptr();
- }
- view_select_aux view_check_option
- {
- THD *thd= YYTHD;
- LEX *lex= Lex;
- Lex_input_stream *lip= thd->m_lip;
- lex->parsing_options.allows_variable= TRUE;
- lex->parsing_options.allows_select_into= TRUE;
- lex->parsing_options.allows_select_procedure= TRUE;
- lex->parsing_options.allows_derived= TRUE;
- lex->create_view_select_end= lip->get_cpp_ptr();
- }
+ {
+ THD *thd= YYTHD;
+ LEX *lex= Lex;
+ Lex_input_stream *lip= thd->m_lip;
+ lex->parsing_options.allows_variable= FALSE;
+ lex->parsing_options.allows_select_into= FALSE;
+ lex->parsing_options.allows_select_procedure= FALSE;
+ lex->parsing_options.allows_derived= FALSE;
+ lex->create_view_select_start= lip->get_cpp_ptr();
+ }
+ view_select_aux view_check_option
+ {
+ THD *thd= YYTHD;
+ LEX *lex= Lex;
+ Lex_input_stream *lip= thd->m_lip;
+ lex->parsing_options.allows_variable= TRUE;
+ lex->parsing_options.allows_select_into= TRUE;
+ lex->parsing_options.allows_select_procedure= TRUE;
+ lex->parsing_options.allows_derived= TRUE;
+ lex->create_view_select_end= lip->get_cpp_ptr();
+ }
;
view_select_aux:
- SELECT_SYM select_init2
+ SELECT_SYM select_init2
| '(' select_paren ')' union_opt
;
view_check_option:
- /* empty */
- { Lex->create_view_check= VIEW_CHECK_NONE; }
- | WITH CHECK_SYM OPTION
- { Lex->create_view_check= VIEW_CHECK_CASCADED; }
- | WITH CASCADED CHECK_SYM OPTION
- { Lex->create_view_check= VIEW_CHECK_CASCADED; }
- | WITH LOCAL_SYM CHECK_SYM OPTION
- { Lex->create_view_check= VIEW_CHECK_LOCAL; }
- ;
+ /* empty */
+ { Lex->create_view_check= VIEW_CHECK_NONE; }
+ | WITH CHECK_SYM OPTION
+ { Lex->create_view_check= VIEW_CHECK_CASCADED; }
+ | WITH CASCADED CHECK_SYM OPTION
+ { Lex->create_view_check= VIEW_CHECK_CASCADED; }
+ | WITH LOCAL_SYM CHECK_SYM OPTION
+ { Lex->create_view_check= VIEW_CHECK_LOCAL; }
+ ;
/**************************************************************************
@@ -11527,93 +12024,93 @@ view_check_option:
**************************************************************************/
trigger_tail:
- TRIGGER_SYM
- remember_name
- sp_name
- trg_action_time
- trg_event
- ON
- remember_name /* $7 */
- { /* $8 */
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- lex->raw_trg_on_table_name_begin= lip->get_tok_start();
- }
- table_ident /* $9 */
- FOR_SYM
- remember_name /* $11 */
- { /* $12 */
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- lex->raw_trg_on_table_name_end= lip->get_tok_start();
- }
- EACH_SYM
- ROW_SYM
- { /* $15 */
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- sp_head *sp;
-
- if (lex->sphead)
- {
- my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
- MYSQL_YYABORT;
- }
-
- if (!(sp= new sp_head()))
- MYSQL_YYABORT;
- sp->reset_thd_mem_root(thd);
- sp->init(lex);
- sp->m_type= TYPE_ENUM_TRIGGER;
- sp->init_sp_name(thd, $3);
- lex->stmt_definition_begin= $2;
- lex->ident.str= $7;
- lex->ident.length= $11 - $7;
-
- lex->sphead= sp;
- lex->spname= $3;
- /*
- We have to turn of CLIENT_MULTI_QUERIES while parsing a
- stored procedure, otherwise yylex will chop it into pieces
- at each ';'.
- */
- $<ulong_num>$= thd->client_capabilities & CLIENT_MULTI_QUERIES;
- thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;
-
- bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
- lex->sphead->m_chistics= &lex->sp_chistics;
- lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
- }
- sp_proc_stmt /* $16 */
- { /* $17 */
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
-
- lex->sql_command= SQLCOM_CREATE_TRIGGER;
- sp->set_stmt_end(YYTHD);
- /* Restore flag if it was cleared above */
-
- YYTHD->client_capabilities |= $<ulong_num>15;
- sp->restore_thd_mem_root(YYTHD);
-
- if (sp->is_not_allowed_in_function("trigger"))
- MYSQL_YYABORT;
-
- /*
- We have to do it after parsing trigger body, because some of
- sp_proc_stmt alternatives are not saving/restoring LEX, so
- lex->query_tables can be wiped out.
- */
- if (!lex->select_lex.add_table_to_list(YYTHD, $9,
- (LEX_STRING*) 0,
- TL_OPTION_UPDATING,
- TL_IGNORE))
- MYSQL_YYABORT;
- }
- ;
+ TRIGGER_SYM
+ remember_name
+ sp_name
+ trg_action_time
+ trg_event
+ ON
+ remember_name /* $7 */
+ { /* $8 */
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ lex->raw_trg_on_table_name_begin= lip->get_tok_start();
+ }
+ table_ident /* $9 */
+ FOR_SYM
+ remember_name /* $11 */
+ { /* $12 */
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ lex->raw_trg_on_table_name_end= lip->get_tok_start();
+ }
+ EACH_SYM
+ ROW_SYM
+ { /* $15 */
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ sp_head *sp;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
+ MYSQL_YYABORT;
+ }
+
+ if (!(sp= new sp_head()))
+ MYSQL_YYABORT;
+ sp->reset_thd_mem_root(thd);
+ sp->init(lex);
+ sp->m_type= TYPE_ENUM_TRIGGER;
+ sp->init_sp_name(thd, $3);
+ lex->stmt_definition_begin= $2;
+ lex->ident.str= $7;
+ lex->ident.length= $11 - $7;
+
+ lex->sphead= sp;
+ lex->spname= $3;
+ /*
+ We have to turn of CLIENT_MULTI_QUERIES while parsing a
+ stored procedure, otherwise yylex will chop it into pieces
+ at each ';'.
+ */
+ $<ulong_num>$= thd->client_capabilities & CLIENT_MULTI_QUERIES;
+ thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;
+
+ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
+ lex->sphead->m_chistics= &lex->sp_chistics;
+ lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
+ }
+ sp_proc_stmt /* $16 */
+ { /* $17 */
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+
+ lex->sql_command= SQLCOM_CREATE_TRIGGER;
+ sp->set_stmt_end(YYTHD);
+ /* Restore flag if it was cleared above */
+
+ YYTHD->client_capabilities |= $<ulong_num>15;
+ sp->restore_thd_mem_root(YYTHD);
+
+ if (sp->is_not_allowed_in_function("trigger"))
+ MYSQL_YYABORT;
+
+ /*
+ We have to do it after parsing trigger body, because some of
+ sp_proc_stmt alternatives are not saving/restoring LEX, so
+ lex->query_tables can be wiped out.
+ */
+ if (!lex->select_lex.add_table_to_list(YYTHD, $9,
+ (LEX_STRING*) 0,
+ TL_OPTION_UPDATING,
+ TL_IGNORE))
+ MYSQL_YYABORT;
+ }
+ ;
/**************************************************************************
@@ -11622,181 +12119,192 @@ trigger_tail:
**************************************************************************/
sp_tail:
- udf_func_type remember_name FUNCTION_SYM sp_name
- {
- LEX *lex=Lex;
- lex->udf.type= $1;
- lex->stmt_definition_begin= $2;
- lex->spname= $4;
- }
- create_function_tail
- {}
- | PROCEDURE remember_name sp_name
- {
- LEX *lex= Lex;
- sp_head *sp;
-
- if (lex->sphead)
- {
- my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
- MYSQL_YYABORT;
- }
-
- lex->stmt_definition_begin= $2;
-
- /* Order is important here: new - reset - init */
- sp= new sp_head();
- sp->reset_thd_mem_root(YYTHD);
- sp->init(lex);
- sp->m_type= TYPE_ENUM_PROCEDURE;
- sp->init_sp_name(YYTHD, $3);
-
- lex->sphead= sp;
- /*
- * We have to turn of CLIENT_MULTI_QUERIES while parsing a
- * stored procedure, otherwise yylex will chop it into pieces
- * at each ';'.
- */
- $<ulong_num>$= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
- YYTHD->client_capabilities &= (~CLIENT_MULTI_QUERIES);
- }
- '('
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
- const char* tmp_param_begin;
-
- tmp_param_begin= lip->get_cpp_tok_start();
- tmp_param_begin++;
- lex->sphead->m_param_begin= tmp_param_begin;
- }
- sp_pdparam_list
- ')'
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- lex->sphead->m_param_end= lip->get_cpp_tok_start();
- bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
- }
- sp_c_chistics
- {
- THD *thd= YYTHD;
- LEX *lex= thd->lex;
- Lex_input_stream *lip= thd->m_lip;
-
- lex->sphead->m_chistics= &lex->sp_chistics;
- lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
- }
- sp_proc_stmt
- {
- LEX *lex= Lex;
- sp_head *sp= lex->sphead;
-
- sp->set_stmt_end(YYTHD);
- lex->sql_command= SQLCOM_CREATE_PROCEDURE;
- /*
- Restore flag if it was cleared above
- Be careful with counting. the block where we save the value
- is $4.
- */
- YYTHD->client_capabilities |= $<ulong_num>4;
- sp->restore_thd_mem_root(YYTHD);
- }
- ;
+ udf_func_type remember_name FUNCTION_SYM sp_name
+ {
+ LEX *lex=Lex;
+ lex->udf.type= $1;
+ lex->stmt_definition_begin= $2;
+ lex->spname= $4;
+ }
+ create_function_tail
+ {}
+ | PROCEDURE remember_name sp_name
+ {
+ LEX *lex= Lex;
+ sp_head *sp;
+
+ if (lex->sphead)
+ {
+ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
+ MYSQL_YYABORT;
+ }
+
+ lex->stmt_definition_begin= $2;
+
+ /* Order is important here: new - reset - init */
+ sp= new sp_head();
+ sp->reset_thd_mem_root(YYTHD);
+ sp->init(lex);
+ sp->m_type= TYPE_ENUM_PROCEDURE;
+ sp->init_sp_name(YYTHD, $3);
+
+ lex->sphead= sp;
+ /*
+ * We have to turn of CLIENT_MULTI_QUERIES while parsing a
+ * stored procedure, otherwise yylex will chop it into pieces
+ * at each ';'.
+ */
+ $<ulong_num>$= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
+ YYTHD->client_capabilities &= (~CLIENT_MULTI_QUERIES);
+ }
+ '('
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+ const char* tmp_param_begin;
+
+ tmp_param_begin= lip->get_cpp_tok_start();
+ tmp_param_begin++;
+ lex->sphead->m_param_begin= tmp_param_begin;
+ }
+ sp_pdparam_list
+ ')'
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+
+ lex->sphead->m_param_end= lip->get_cpp_tok_start();
+ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
+ }
+ sp_c_chistics
+ {
+ THD *thd= YYTHD;
+ LEX *lex= thd->lex;
+ Lex_input_stream *lip= thd->m_lip;
+
+ lex->sphead->m_chistics= &lex->sp_chistics;
+ lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
+ }
+ sp_proc_stmt
+ {
+ LEX *lex= Lex;
+ sp_head *sp= lex->sphead;
+
+ sp->set_stmt_end(YYTHD);
+ lex->sql_command= SQLCOM_CREATE_PROCEDURE;
+ /*
+ Restore flag if it was cleared above
+ Be careful with counting. the block where we save the value
+ is $4.
+ */
+ YYTHD->client_capabilities |= $<ulong_num>4;
+ sp->restore_thd_mem_root(YYTHD);
+ }
+ ;
/*************************************************************************/
-xa: XA_SYM begin_or_start xid opt_join_or_resume
- {
- Lex->sql_command = SQLCOM_XA_START;
- }
- | XA_SYM END xid opt_suspend
- {
- Lex->sql_command = SQLCOM_XA_END;
- }
- | XA_SYM PREPARE_SYM xid
- {
- Lex->sql_command = SQLCOM_XA_PREPARE;
- }
- | XA_SYM COMMIT_SYM xid opt_one_phase
- {
- Lex->sql_command = SQLCOM_XA_COMMIT;
- }
- | XA_SYM ROLLBACK_SYM xid
- {
- Lex->sql_command = SQLCOM_XA_ROLLBACK;
- }
- | XA_SYM RECOVER_SYM
- {
- Lex->sql_command = SQLCOM_XA_RECOVER;
- }
- ;
-
-xid: text_string
- {
- MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE);
- if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
- MYSQL_YYABORT;
- Lex->xid->set(1L, $1->ptr(), $1->length(), 0, 0);
- }
- | text_string ',' text_string
- {
- MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE);
- if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
- MYSQL_YYABORT;
- Lex->xid->set(1L, $1->ptr(), $1->length(), $3->ptr(), $3->length());
- }
- | text_string ',' text_string ',' ulong_num
- {
- MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE);
- if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
- MYSQL_YYABORT;
- Lex->xid->set($5, $1->ptr(), $1->length(), $3->ptr(), $3->length());
- }
- ;
-
-begin_or_start: BEGIN_SYM {}
- | START_SYM {}
- ;
+xa:
+ XA_SYM begin_or_start xid opt_join_or_resume
+ {
+ Lex->sql_command = SQLCOM_XA_START;
+ }
+ | XA_SYM END xid opt_suspend
+ {
+ Lex->sql_command = SQLCOM_XA_END;
+ }
+ | XA_SYM PREPARE_SYM xid
+ {
+ Lex->sql_command = SQLCOM_XA_PREPARE;
+ }
+ | XA_SYM COMMIT_SYM xid opt_one_phase
+ {
+ Lex->sql_command = SQLCOM_XA_COMMIT;
+ }
+ | XA_SYM ROLLBACK_SYM xid
+ {
+ Lex->sql_command = SQLCOM_XA_ROLLBACK;
+ }
+ | XA_SYM RECOVER_SYM
+ {
+ Lex->sql_command = SQLCOM_XA_RECOVER;
+ }
+ ;
+
+xid:
+ text_string
+ {
+ MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE);
+ if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
+ MYSQL_YYABORT;
+ Lex->xid->set(1L, $1->ptr(), $1->length(), 0, 0);
+ }
+ | text_string ',' text_string
+ {
+ MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE);
+ if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
+ MYSQL_YYABORT;
+ Lex->xid->set(1L, $1->ptr(), $1->length(), $3->ptr(), $3->length());
+ }
+ | text_string ',' text_string ',' ulong_num
+ {
+ MYSQL_YYABORT_UNLESS($1->length() <= MAXGTRIDSIZE && $3->length() <= MAXBQUALSIZE);
+ if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
+ MYSQL_YYABORT;
+ Lex->xid->set($5, $1->ptr(), $1->length(), $3->ptr(), $3->length());
+ }
+ ;
+
+begin_or_start:
+ BEGIN_SYM {}
+ | START_SYM {}
+ ;
opt_join_or_resume:
- /* nothing */ { Lex->xa_opt=XA_NONE; }
- | JOIN_SYM { Lex->xa_opt=XA_JOIN; }
- | RESUME_SYM { Lex->xa_opt=XA_RESUME; }
- ;
+ /* nothing */ { Lex->xa_opt=XA_NONE; }
+ | JOIN_SYM { Lex->xa_opt=XA_JOIN; }
+ | RESUME_SYM { Lex->xa_opt=XA_RESUME; }
+ ;
opt_one_phase:
- /* nothing */ { Lex->xa_opt=XA_NONE; }
- | ONE_SYM PHASE_SYM { Lex->xa_opt=XA_ONE_PHASE; }
- ;
+ /* nothing */ { Lex->xa_opt=XA_NONE; }
+ | ONE_SYM PHASE_SYM { Lex->xa_opt=XA_ONE_PHASE; }
+ ;
opt_suspend:
- /* nothing */ { Lex->xa_opt=XA_NONE; }
- | SUSPEND_SYM { Lex->xa_opt=XA_SUSPEND; }
- opt_migrate
- ;
+ /* nothing */
+ { Lex->xa_opt=XA_NONE; }
+ | SUSPEND_SYM
+ { Lex->xa_opt=XA_SUSPEND; }
+ opt_migrate
+ ;
opt_migrate:
- /* nothing */ { }
- | FOR_SYM MIGRATE_SYM { Lex->xa_opt=XA_FOR_MIGRATE; }
- ;
+ /* nothing */ {}
+ | FOR_SYM MIGRATE_SYM { Lex->xa_opt=XA_FOR_MIGRATE; }
+ ;
install:
- INSTALL_SYM PLUGIN_SYM ident SONAME_SYM TEXT_STRING_sys
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_INSTALL_PLUGIN;
- lex->comment= $3;
- lex->ident= $5;
- };
+ INSTALL_SYM PLUGIN_SYM ident SONAME_SYM TEXT_STRING_sys
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_INSTALL_PLUGIN;
+ lex->comment= $3;
+ lex->ident= $5;
+ }
+ ;
uninstall:
- UNINSTALL_SYM PLUGIN_SYM ident
- {
- LEX *lex= Lex;
- lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
- lex->comment= $3;
- };
+ UNINSTALL_SYM PLUGIN_SYM ident
+ {
+ LEX *lex= Lex;
+ lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
+ lex->comment= $3;
+ }
+ ;
+
+/**
+ @} (end of group Parser)
+*/
diff --git a/sql/table.h b/sql/table.h
index 79d8cfbdff9..6554b6ed578 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -157,7 +157,7 @@ enum enum_table_category
- FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON
do not apply to this table.
- Note that LOCK TABLE <t> FOR READ/WRITE
+ Note that LOCK TABLE t FOR READ/WRITE
can be used on temporary tables.
Temporary tables are not part of the table cache.
*/
@@ -166,7 +166,7 @@ enum enum_table_category
/**
User table.
These tables do honor:
- - LOCK TABLE <t> FOR READ/WRITE
+ - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON
User tables are cached in the table cache.
@@ -176,7 +176,7 @@ enum enum_table_category
/**
System table, maintained by the server.
These tables do honor:
- - LOCK TABLE <t> FOR READ/WRITE
+ - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON
Typically, writes to system tables are performed by
@@ -190,7 +190,7 @@ enum enum_table_category
These tables are an interface provided by the system
to inspect the system metadata.
These tables do *not* honor:
- - LOCK TABLE <t> FOR READ/WRITE
+ - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON
as there is no point in locking explicitely
@@ -212,7 +212,7 @@ enum enum_table_category
These tables are an interface provided by the system
to inspect the system performance data.
These tables do *not* honor:
- - LOCK TABLE <t> FOR READ/WRITE
+ - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON
as there is no point in locking explicitely
diff --git a/sql/udf_example.c b/sql/udf_example.c
index b603464568e..6c07a929b04 100644
--- a/sql/udf_example.c
+++ b/sql/udf_example.c
@@ -1106,4 +1106,39 @@ char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
}
+my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
+{
+ if (args->arg_count != 1)
+ {
+ strmov(message, "IS_CONST accepts only one argument");
+ return 1;
+ }
+ if (args->args[0] == 0)
+ {
+ initid->ptr= (char*)"Not constant";
+ }
+ else if(strlen(args->args[0]) == args->lengths[0])
+ {
+ initid->ptr= (char*)"Correct length";
+ }
+ else
+ {
+ initid->ptr= (char*)"Wrong length";
+ }
+ initid->max_length = 100;
+ return 0;
+}
+
+char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
+ char *result, unsigned long *length,
+ char *is_null, char *error __attribute__((unused)))
+{
+ strmov(result, initid->ptr);
+ *length= strlen(result);
+ *is_null= 0;
+ return result;
+}
+
+
+
#endif /* HAVE_DLOPEN */
diff --git a/sql/udf_example.def b/sql/udf_example.def
index 7a87147d7b6..3d569941cc8 100644
--- a/sql/udf_example.def
+++ b/sql/udf_example.def
@@ -23,3 +23,5 @@ EXPORTS
avgcost
is_const
is_const_init
+ check_const_len
+ check_const_len_init
diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc
index 65e28da1fe3..b7186dda676 100644
--- a/storage/example/ha_example.cc
+++ b/storage/example/ha_example.cc
@@ -79,6 +79,10 @@
ha_example::open() would also have been necessary. Calls to
ha_example::extra() are hints as to what will be occuring to the request.
+ A Longer Example can be found called the "Skeleton Engine" which can be
+ found on TangentOrg. It has both an engine and a full build environment
+ for building a pluggable storage engine.
+
Happy coding!<br>
-Brian
*/
@@ -132,7 +136,6 @@ static int example_init_func(void *p)
(hash_get_key) example_get_key,0,0);
example_hton->state= SHOW_OPTION_YES;
- example_hton->db_type= DB_TYPE_EXAMPLE_DB;
example_hton->create= example_create_handler;
example_hton->flags= HTON_CAN_RECREATE;
diff --git a/storage/example/plug.in b/storage/example/plug.in
index ba35b1ea117..ee6beaac64f 100644
--- a/storage/example/plug.in
+++ b/storage/example/plug.in
@@ -1,3 +1,3 @@
MYSQL_STORAGE_ENGINE(example,, [Example Storage Engine],
- [Skeleton for Storage Engines for developers], [max,max-no-ndb])
+ [Example for Storage Engines for developers], [max,max-no-ndb])
MYSQL_PLUGIN_DYNAMIC(example, [ha_example.la])
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index ded0ce88484..edcd1127dbd 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -3169,7 +3169,7 @@ int ha_federated::external_lock(THD *thd, int lock_type)
#ifdef XXX_SUPERCEDED_BY_WL2952
if (lock_type != F_UNLCK)
{
- ha_federated *trx= (ha_federated *)thd->ha_data[ht->slot];
+ ha_federated *trx= (ha_federated *)thd_get_ha_data(thd, ht);
DBUG_PRINT("info",("federated not lock F_UNLCK"));
if (!(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)))
@@ -3200,7 +3200,7 @@ int ha_federated::external_lock(THD *thd, int lock_type)
DBUG_PRINT("info", ("error setting autocommit FALSE: %d", error));
DBUG_RETURN(error);
}
- thd->ha_data[ht->slot]= this;
+ thd_set_ha_data(thd, ht, this);
trans_register_ha(thd, TRUE, ht);
/*
Send a lock table to the remote end.
@@ -3230,7 +3230,7 @@ int ha_federated::external_lock(THD *thd, int lock_type)
static int federated_commit(handlerton *hton, THD *thd, bool all)
{
int return_val= 0;
- ha_federated *trx= (ha_federated *)thd->ha_data[hton->slot];
+ ha_federated *trx= (ha_federated *) thd_get_ha_data(thd, hton);
DBUG_ENTER("federated_commit");
if (all)
@@ -3245,7 +3245,7 @@ static int federated_commit(handlerton *hton, THD *thd, bool all)
if (error && !return_val)
return_val= error;
}
- thd->ha_data[hton->slot]= NULL;
+ thd_set_ha_data(thd, hton, NULL);
}
DBUG_PRINT("info", ("error val: %d", return_val));
@@ -3256,7 +3256,7 @@ static int federated_commit(handlerton *hton, THD *thd, bool all)
static int federated_rollback(handlerton *hton, THD *thd, bool all)
{
int return_val= 0;
- ha_federated *trx= (ha_federated *)thd->ha_data[hton->slot];
+ ha_federated *trx= (ha_federated *)thd_get_ha_data(thd, hton);
DBUG_ENTER("federated_rollback");
if (all)
@@ -3271,7 +3271,7 @@ static int federated_rollback(handlerton *hton, THD *thd, bool all)
if (error && !return_val)
return_val= error;
}
- thd->ha_data[hton->slot]= NULL;
+ thd_set_ha_data(thd, hton, NULL);
}
DBUG_PRINT("info", ("error val: %d", return_val));
diff --git a/storage/innobase/dict/dict0boot.c b/storage/innobase/dict/dict0boot.c
index f8849008854..5f9aaf71e18 100644
--- a/storage/innobase/dict/dict0boot.c
+++ b/storage/innobase/dict/dict0boot.c
@@ -211,6 +211,7 @@ dict_boot(void)
dict_table_t* table;
dict_index_t* index;
dict_hdr_t* dict_hdr;
+ mem_heap_t* heap;
mtr_t mtr;
mtr_start(&mtr);
@@ -218,6 +219,8 @@ dict_boot(void)
/* Create the hash tables etc. */
dict_init();
+ heap = mem_heap_create(450);
+
mutex_enter(&(dict_sys->mutex));
/* Get the dictionary header */
@@ -244,19 +247,20 @@ dict_boot(void)
/*-------------------------*/
table = dict_mem_table_create("SYS_TABLES", DICT_HDR_SPACE, 8, 0);
- dict_mem_table_add_col(table, "NAME", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "N_COLS", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "TYPE", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "MIX_ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "MIX_LEN", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "CLUSTER_NAME", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "SPACE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "NAME", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "N_COLS", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "TYPE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "MIX_ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "MIX_LEN", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "CLUSTER_NAME", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "SPACE", DATA_INT, 0, 4);
table->id = DICT_TABLES_ID;
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
dict_sys->sys_tables = table;
+ mem_heap_empty(heap);
index = dict_mem_index_create("SYS_TABLES", "CLUST_IND",
DICT_HDR_SPACE,
@@ -283,18 +287,19 @@ dict_boot(void)
/*-------------------------*/
table = dict_mem_table_create("SYS_COLUMNS", DICT_HDR_SPACE, 7, 0);
- dict_mem_table_add_col(table, "TABLE_ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "POS", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "NAME", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "MTYPE", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "PRTYPE", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "LEN", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "PREC", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "TABLE_ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "POS", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "NAME", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "MTYPE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "PRTYPE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "LEN", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "PREC", DATA_INT, 0, 4);
table->id = DICT_COLUMNS_ID;
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
dict_sys->sys_columns = table;
+ mem_heap_empty(heap);
index = dict_mem_index_create("SYS_COLUMNS", "CLUST_IND",
DICT_HDR_SPACE,
@@ -311,13 +316,13 @@ dict_boot(void)
/*-------------------------*/
table = dict_mem_table_create("SYS_INDEXES", DICT_HDR_SPACE, 7, 0);
- dict_mem_table_add_col(table, "TABLE_ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "NAME", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "N_FIELDS", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "TYPE", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "SPACE", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "PAGE_NO", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "TABLE_ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "NAME", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "N_FIELDS", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "TYPE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "SPACE", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "PAGE_NO", DATA_INT, 0, 4);
/* The '+ 2' below comes from the 2 system fields */
#if DICT_SYS_INDEXES_PAGE_NO_FIELD != 6 + 2
@@ -331,8 +336,9 @@ dict_boot(void)
#endif
table->id = DICT_INDEXES_ID;
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
dict_sys->sys_indexes = table;
+ mem_heap_empty(heap);
index = dict_mem_index_create("SYS_INDEXES", "CLUST_IND",
DICT_HDR_SPACE,
@@ -349,13 +355,14 @@ dict_boot(void)
/*-------------------------*/
table = dict_mem_table_create("SYS_FIELDS", DICT_HDR_SPACE, 3, 0);
- dict_mem_table_add_col(table, "INDEX_ID", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "POS", DATA_INT, 0, 4);
- dict_mem_table_add_col(table, "COL_NAME", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "INDEX_ID", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "POS", DATA_INT, 0, 4);
+ dict_mem_table_add_col(table, heap, "COL_NAME", DATA_BINARY, 0, 0);
table->id = DICT_FIELDS_ID;
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
dict_sys->sys_fields = table;
+ mem_heap_free(heap);
index = dict_mem_index_create("SYS_FIELDS", "CLUST_IND",
DICT_HDR_SPACE,
diff --git a/storage/innobase/dict/dict0crea.c b/storage/innobase/dict/dict0crea.c
index 51146c3c24c..4116230347d 100644
--- a/storage/innobase/dict/dict0crea.c
+++ b/storage/innobase/dict/dict0crea.c
@@ -960,7 +960,7 @@ dict_create_table_step(
if (node->state == TABLE_ADD_TO_CACHE) {
- dict_table_add_to_cache(node->table);
+ dict_table_add_to_cache(node->table, node->heap);
err = DB_SUCCESS;
}
diff --git a/storage/innobase/dict/dict0dict.c b/storage/innobase/dict/dict0dict.c
index e2a9535dc8b..595dfb06ee5 100644
--- a/storage/innobase/dict/dict0dict.c
+++ b/storage/innobase/dict/dict0dict.c
@@ -410,14 +410,27 @@ dict_table_get_col_name(
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
s = table->col_names;
-
- for (i = 0; i < col_nr; i++) {
- s += strlen(s) + 1;
+ if (s) {
+ for (i = 0; i < col_nr; i++) {
+ s += strlen(s) + 1;
+ }
}
return(s);
}
+
+/************************************************************************
+Acquire the autoinc lock.*/
+
+void
+dict_table_autoinc_lock(
+/*====================*/
+ dict_table_t* table)
+{
+ mutex_enter(&table->autoinc_mutex);
+}
+
/************************************************************************
Initializes the autoinc counter. It is not an error to initialize an already
initialized counter. */
@@ -428,54 +441,8 @@ dict_table_autoinc_initialize(
dict_table_t* table, /* in: table */
ib_longlong value) /* in: next value to assign to a row */
{
- mutex_enter(&(table->autoinc_mutex));
-
table->autoinc_inited = TRUE;
table->autoinc = value;
-
- mutex_exit(&(table->autoinc_mutex));
-}
-
-/************************************************************************
-Gets the next autoinc value (== autoinc counter value), 0 if not yet
-initialized. If initialized, increments the counter by 1. */
-
-ib_longlong
-dict_table_autoinc_get(
-/*===================*/
- /* out: value for a new row, or 0 */
- dict_table_t* table) /* in: table */
-{
- ib_longlong value;
-
- mutex_enter(&(table->autoinc_mutex));
-
- if (!table->autoinc_inited) {
-
- value = 0;
- } else {
- value = table->autoinc;
- table->autoinc = table->autoinc + 1;
- }
-
- mutex_exit(&(table->autoinc_mutex));
-
- return(value);
-}
-
-/************************************************************************
-Decrements the autoinc counter value by 1. */
-
-void
-dict_table_autoinc_decrement(
-/*=========================*/
- dict_table_t* table) /* in: table */
-{
- mutex_enter(&(table->autoinc_mutex));
-
- table->autoinc = table->autoinc - 1;
-
- mutex_exit(&(table->autoinc_mutex));
}
/************************************************************************
@@ -490,32 +457,6 @@ dict_table_autoinc_read(
{
ib_longlong value;
- mutex_enter(&(table->autoinc_mutex));
-
- if (!table->autoinc_inited) {
-
- value = 0;
- } else {
- value = table->autoinc;
- }
-
- mutex_exit(&(table->autoinc_mutex));
-
- return(value);
-}
-
-/************************************************************************
-Peeks the autoinc counter value, 0 if not yet initialized. Does not
-increment the counter. The read not protected by any mutex! */
-
-ib_longlong
-dict_table_autoinc_peek(
-/*====================*/
- /* out: value of the counter */
- dict_table_t* table) /* in: table */
-{
- ib_longlong value;
-
if (!table->autoinc_inited) {
value = 0;
@@ -527,7 +468,7 @@ dict_table_autoinc_peek(
}
/************************************************************************
-Updates the autoinc counter if the value supplied is equal or bigger than the
+Updates the autoinc counter if the value supplied is greater than the
current value. If not inited, does nothing. */
void
@@ -537,15 +478,21 @@ dict_table_autoinc_update(
dict_table_t* table, /* in: table */
ib_longlong value) /* in: value which was assigned to a row */
{
- mutex_enter(&(table->autoinc_mutex));
+ if (table->autoinc_inited && value > table->autoinc) {
- if (table->autoinc_inited) {
- if (value >= table->autoinc) {
- table->autoinc = value + 1;
- }
+ table->autoinc = value;
}
+}
- mutex_exit(&(table->autoinc_mutex));
+/************************************************************************
+Release the autoinc lock.*/
+
+void
+dict_table_autoinc_unlock(
+/*======================*/
+ dict_table_t* table) /* in: release autoinc lock for this table */
+{
+ mutex_exit(&table->autoinc_mutex);
}
/************************************************************************
@@ -842,28 +789,18 @@ dict_table_get(
}
/**************************************************************************
-Adds a table object to the dictionary cache. */
+Adds system columns to a table object. */
void
-dict_table_add_to_cache(
-/*====================*/
- dict_table_t* table) /* in: table */
+dict_table_add_system_columns(
+/*==========================*/
+ dict_table_t* table, /* in/out: table */
+ mem_heap_t* heap) /* in: temporary heap */
{
- ulint fold;
- ulint id_fold;
- ulint i;
- ulint row_len;
-
ut_ad(table);
- ut_ad(mutex_own(&(dict_sys->mutex)));
ut_ad(table->n_def == table->n_cols - DATA_N_SYS_COLS);
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
- ut_ad(table->cached == FALSE);
-
- fold = ut_fold_string(table->name);
- id_fold = ut_fold_dulint(table->id);
-
- table->cached = TRUE;
+ ut_ad(!table->cached);
/* NOTE: the system columns MUST be added in the following order
(so that they can be indexed by the numerical value of DATA_ROW_ID,
@@ -871,19 +808,19 @@ dict_table_add_to_cache(
The clustered index will not always physically contain all
system columns. */
- dict_mem_table_add_col(table, "DB_ROW_ID", DATA_SYS,
+ dict_mem_table_add_col(table, heap, "DB_ROW_ID", DATA_SYS,
DATA_ROW_ID | DATA_NOT_NULL,
DATA_ROW_ID_LEN);
#if DATA_ROW_ID != 0
#error "DATA_ROW_ID != 0"
#endif
- dict_mem_table_add_col(table, "DB_TRX_ID", DATA_SYS,
+ dict_mem_table_add_col(table, heap, "DB_TRX_ID", DATA_SYS,
DATA_TRX_ID | DATA_NOT_NULL,
DATA_TRX_ID_LEN);
#if DATA_TRX_ID != 1
#error "DATA_TRX_ID != 1"
#endif
- dict_mem_table_add_col(table, "DB_ROLL_PTR", DATA_SYS,
+ dict_mem_table_add_col(table, heap, "DB_ROLL_PTR", DATA_SYS,
DATA_ROLL_PTR | DATA_NOT_NULL,
DATA_ROLL_PTR_LEN);
#if DATA_ROLL_PTR != 2
@@ -895,10 +832,34 @@ dict_table_add_to_cache(
#if DATA_N_SYS_COLS != 3
#error "DATA_N_SYS_COLS != 3"
#endif
+}
+
+/**************************************************************************
+Adds a table object to the dictionary cache. */
+
+void
+dict_table_add_to_cache(
+/*====================*/
+ dict_table_t* table, /* in: table */
+ mem_heap_t* heap) /* in: temporary heap */
+{
+ ulint fold;
+ ulint id_fold;
+ ulint i;
+ ulint row_len;
/* The lower limit for what we consider a "big" row */
#define BIG_ROW_SIZE 1024
+ ut_ad(mutex_own(&(dict_sys->mutex)));
+
+ dict_table_add_system_columns(table, heap);
+
+ table->cached = TRUE;
+
+ fold = ut_fold_string(table->name);
+ id_fold = ut_fold_dulint(table->id);
+
row_len = 0;
for (i = 0; i < table->n_def; i++) {
ulint col_len = dict_col_get_max_size(
diff --git a/storage/innobase/dict/dict0load.c b/storage/innobase/dict/dict0load.c
index ba2e25cf031..1ff1fd54cec 100644
--- a/storage/innobase/dict/dict0load.c
+++ b/storage/innobase/dict/dict0load.c
@@ -423,7 +423,8 @@ dict_load_columns(
ut_a(name_of_col_is(sys_columns, sys_index, 8, "PREC"));
- dict_mem_table_add_col(table, name, mtype, prtype, col_len);
+ dict_mem_table_add_col(table, heap, name,
+ mtype, prtype, col_len);
btr_pcur_move_to_next_user_rec(&pcur, &mtr);
}
@@ -746,7 +747,7 @@ dict_load_table(
ut_ad(mutex_own(&(dict_sys->mutex)));
- heap = mem_heap_create(1000);
+ heap = mem_heap_create(32000);
mtr_start(&mtr);
@@ -852,7 +853,9 @@ err_exit:
dict_load_columns(table, heap);
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
+
+ mem_heap_empty(heap);
dict_load_indexes(table, heap);
diff --git a/storage/innobase/dict/dict0mem.c b/storage/innobase/dict/dict0mem.c
index 9aa49dee745..47cf7a0bc9c 100644
--- a/storage/innobase/dict/dict0mem.c
+++ b/storage/innobase/dict/dict0mem.c
@@ -90,6 +90,15 @@ dict_mem_table_create(
mutex_create(&table->autoinc_mutex, SYNC_DICT_AUTOINC_MUTEX);
table->autoinc_inited = FALSE;
+
+ /* The actual increment value will be set by MySQL, we simply
+ default to 1 here.*/
+ table->autoinc_increment = 1;
+
+ /* The number of transactions that are either waiting on the
+ AUTOINC lock or have been granted the lock. */
+ table->n_waiting_or_granted_auto_inc_locks = 0;
+
#ifdef UNIV_DEBUG
table->magic_n = DICT_TABLE_MAGIC_N;
#endif /* UNIV_DEBUG */
@@ -108,18 +117,11 @@ dict_mem_table_free(
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
mutex_free(&(table->autoinc_mutex));
-
- if (table->col_names && (table->n_def < table->n_cols)) {
- ut_free((void*)table->col_names);
- }
-
mem_heap_free(table->heap);
}
/********************************************************************
-Add 'name' to end of the col_names array (see dict_table_t::col_names). Call
-ut_free on col_names (if not NULL), allocate new array (if heap, from it,
-otherwise with ut_malloc), and copy col_names + name to it. */
+Append 'name' to 'col_names' (@see dict_table_t::col_names). */
static
const char*
dict_add_col_name(
@@ -129,21 +131,19 @@ dict_add_col_name(
NULL */
ulint cols, /* in: number of existing columns */
const char* name, /* in: new column name */
- mem_heap_t* heap) /* in: heap, or NULL */
+ mem_heap_t* heap) /* in: heap */
{
- ulint i;
- ulint old_len;
- ulint new_len;
- ulint total_len;
- const char* s;
- char* res;
+ ulint old_len;
+ ulint new_len;
+ ulint total_len;
+ char* res;
- ut_a(((cols == 0) && !col_names) || ((cols > 0) && col_names));
- ut_a(*name);
+ ut_ad(!cols == !col_names);
/* Find out length of existing array. */
if (col_names) {
- s = col_names;
+ const char* s = col_names;
+ ulint i;
for (i = 0; i < cols; i++) {
s += strlen(s) + 1;
@@ -157,11 +157,7 @@ dict_add_col_name(
new_len = strlen(name) + 1;
total_len = old_len + new_len;
- if (heap) {
- res = mem_heap_alloc(heap, total_len);
- } else {
- res = ut_malloc(total_len);
- }
+ res = mem_heap_alloc(heap, total_len);
if (old_len > 0) {
memcpy(res, col_names, old_len);
@@ -169,10 +165,6 @@ dict_add_col_name(
memcpy(res + old_len, name, new_len);
- if (col_names) {
- ut_free((char*)col_names);
- }
-
return(res);
}
@@ -183,7 +175,8 @@ void
dict_mem_table_add_col(
/*===================*/
dict_table_t* table, /* in: table */
- const char* name, /* in: column name */
+ mem_heap_t* heap, /* in: temporary memory heap, or NULL */
+ const char* name, /* in: column name, or NULL */
ulint mtype, /* in: main datatype */
ulint prtype, /* in: precise type */
ulint len) /* in: precision */
@@ -191,21 +184,32 @@ dict_mem_table_add_col(
dict_col_t* col;
ulint mbminlen;
ulint mbmaxlen;
- mem_heap_t* heap;
+ ulint i;
- ut_ad(table && name);
+ ut_ad(table);
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
+ ut_ad(!heap == !name);
- table->n_def++;
+ i = table->n_def++;
- heap = table->n_def < table->n_cols ? NULL : table->heap;
- table->col_names = dict_add_col_name(table->col_names,
- table->n_def - 1,
- name, heap);
+ if (name) {
+ if (UNIV_UNLIKELY(table->n_def == table->n_cols)) {
+ heap = table->heap;
+ }
+ if (UNIV_LIKELY(i) && UNIV_UNLIKELY(!table->col_names)) {
+ /* All preceding column names are empty. */
+ char* s = mem_heap_alloc(heap, table->n_def);
+ memset(s, 0, table->n_def);
+ table->col_names = s;
+ }
- col = (dict_col_t*) dict_table_get_nth_col(table, table->n_def - 1);
+ table->col_names = dict_add_col_name(table->col_names,
+ i, name, heap);
+ }
- col->ind = table->n_def - 1;
+ col = (dict_col_t*) dict_table_get_nth_col(table, i);
+
+ col->ind = (unsigned int) i;
col->ord_part = 0;
col->mtype = (unsigned int) mtype;
@@ -318,7 +322,7 @@ dict_mem_index_add_field(
{
dict_field_t* field;
- ut_ad(index && name);
+ ut_ad(index);
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
index->n_def++;
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 05447f75e95..267ebc5bb1e 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -62,12 +62,6 @@ static bool innodb_inited = 0;
*/
static handlerton *innodb_hton_ptr;
-/* Store MySQL definition of 'byte': in Linux it is char while InnoDB
-uses unsigned char; the header univ.i which we include next defines
-'byte' as a macro which expands to 'unsigned char' */
-
-typedef uchar mysql_byte;
-
#define INSIDE_HA_INNOBASE_CC
/* Include necessary InnoDB headers */
@@ -98,11 +92,15 @@ extern "C" {
#include "../storage/innobase/include/ha_prototypes.h"
}
+static const long AUTOINC_OLD_STYLE_LOCKING = 0;
+static const long AUTOINC_NEW_STYLE_LOCKING = 1;
+static const long AUTOINC_NO_LOCKING = 2;
+
static long innobase_mirrored_log_groups, innobase_log_files_in_group,
innobase_log_buffer_size, innobase_buffer_pool_awe_mem_mb,
innobase_additional_mem_pool_size, innobase_file_io_threads,
innobase_lock_wait_timeout, innobase_force_recovery,
- innobase_open_files;
+ innobase_open_files, innobase_autoinc_lock_mode;
static long long innobase_buffer_pool_size, innobase_log_file_size;
@@ -148,7 +146,7 @@ static HASH innobase_open_tables;
bool nw_panic = FALSE;
#endif
-static mysql_byte* innobase_get_key(INNOBASE_SHARE *share, size_t *length,
+static uchar* innobase_get_key(INNOBASE_SHARE *share, size_t *length,
my_bool not_used __attribute__((unused)));
static INNOBASE_SHARE *get_share(const char *table_name);
static void free_share(INNOBASE_SHARE *share);
@@ -1918,6 +1916,8 @@ retry:
trx_mark_sql_stat_end(trx);
}
+ trx->n_autoinc_rows = 0; /* Reset the number AUTO-INC rows required */
+
if (trx->declared_to_be_inside_innodb) {
/* Release our possible ticket in the FIFO */
@@ -1931,110 +1931,6 @@ retry:
DBUG_RETURN(0);
}
-#if 0
-/* TODO: put the
-MySQL-4.1 functionality back to 5.0. This is needed to get InnoDB Hot Backup
-to work. */
-
-/*********************************************************************
-This is called when MySQL writes the binlog entry for the current
-transaction. Writes to the InnoDB tablespace info which tells where the
-MySQL binlog entry for the current transaction ended. Also commits the
-transaction inside InnoDB but does NOT flush InnoDB log files to disk.
-To flush you have to call innobase_commit_complete(). We have separated
-flushing to eliminate the bottleneck of LOCK_log in log.cc which disabled
-InnoDB's group commit capability. */
-static
-int
-innobase_report_binlog_offset_and_commit(
-/*=====================================*/
- /* out: 0 */
- handlerton *hton, /* in: Innodb handlerton */
- THD* thd, /* in: user thread */
- void* trx_handle, /* in: InnoDB trx handle */
- char* log_file_name, /* in: latest binlog file name */
- my_off_t end_offset) /* in: the offset in the binlog file
- up to which we wrote */
-{
- trx_t* trx;
-
- trx = (trx_t*)trx_handle;
-
- ut_a(trx != NULL);
-
- trx->mysql_log_file_name = log_file_name;
- trx->mysql_log_offset = (ib_longlong)end_offset;
-
- trx->flush_log_later = TRUE;
-
- innobase_commit(hton, thd, TRUE);
-
- trx->flush_log_later = FALSE;
-
- return(0);
-}
-
-/***********************************************************************
-This function stores the binlog offset and flushes logs. */
-static
-void
-innobase_store_binlog_offset_and_flush_log(
-/*=======================================*/
- char* binlog_name, /* in: binlog name */
- longlong offset) /* in: binlog offset */
-{
- mtr_t mtr;
-
- assert(binlog_name != NULL);
-
- /* Start a mini-transaction */
- mtr_start_noninline(&mtr);
-
- /* Update the latest MySQL binlog name and offset info
- in trx sys header */
-
- trx_sys_update_mysql_binlog_offset(
- binlog_name,
- offset,
- TRX_SYS_MYSQL_LOG_INFO, &mtr);
-
- /* Commits the mini-transaction */
- mtr_commit(&mtr);
-
- /* Synchronous flush of the log buffer to disk */
- log_buffer_flush_to_disk();
-}
-
-/*********************************************************************
-This is called after MySQL has written the binlog entry for the current
-transaction. Flushes the InnoDB log files to disk if required. */
-static
-int
-innobase_commit_complete(
-/*=====================*/
- /* out: 0 */
- THD* thd) /* in: user thread */
-{
- trx_t* trx;
-
- trx = thd_to_trx(thd);
-
- if (trx && trx->active_trans) {
-
- trx->active_trans = 0;
-
- if (UNIV_UNLIKELY(srv_flush_log_at_trx_commit == 0)) {
-
- return(0);
- }
-
- trx_commit_complete_for_mysql(trx);
- }
-
- return(0);
-}
-#endif
-
/*********************************************************************
Rolls back a transaction or the latest SQL statement. */
static
@@ -2414,7 +2310,7 @@ ha_innobase::open(
upd_and_key_val_buff_len =
table->s->reclength + table->s->max_key_length
+ MAX_REF_PARTS * 3;
- if (!(mysql_byte*) my_multi_malloc(MYF(MY_WME),
+ if (!(uchar*) my_multi_malloc(MYF(MY_WME),
&upd_buff, upd_and_key_val_buff_len,
&key_val_buff, upd_and_key_val_buff_len,
NullS)) {
@@ -2848,8 +2744,8 @@ inline
uint
innobase_read_from_2_little_endian(
/*===============================*/
- /* out: value */
- const mysql_byte* buf) /* in: from where to read */
+ /* out: value */
+ const uchar* buf) /* in: from where to read */
{
return (uint) ((ulint)(buf[0]) + 256 * ((ulint)(buf[1])));
}
@@ -2865,7 +2761,7 @@ ha_innobase::store_key_val_for_row(
char* buff, /* in/out: buffer for the key value (in MySQL
format) */
uint buff_len,/* in: buffer length */
- const mysql_byte* record)/* in: row in MySQL format */
+ const uchar* record)/* in: row in MySQL format */
{
KEY* key_info = table->key_info + keynr;
KEY_PART_INFO* key_part = key_info->key_part;
@@ -3062,7 +2958,7 @@ ha_innobase::store_key_val_for_row(
CHARSET_INFO* cs;
ulint true_len;
ulint key_len;
- const mysql_byte* src_start;
+ const uchar* src_start;
int error=0;
enum_field_types real_type;
@@ -3342,18 +3238,125 @@ skip_field:
}
/************************************************************************
+This special handling is really to overcome the limitations of MySQL's
+binlogging. We need to eliminate the non-determinism that will arise in
+INSERT ... SELECT type of statements, since MySQL binlog only stores the
+min value of the autoinc interval. Once that is fixed we can get rid of
+the special lock handling.*/
+
+ulong
+ha_innobase::innobase_autoinc_lock(void)
+/*====================================*/
+ /* out: DB_SUCCESS if all OK else
+ error code */
+{
+ ulint error = DB_SUCCESS;
+
+ switch (innobase_autoinc_lock_mode) {
+ case AUTOINC_NO_LOCKING:
+ /* Acquire only the AUTOINC mutex. */
+ dict_table_autoinc_lock(prebuilt->table);
+ break;
+
+ case AUTOINC_NEW_STYLE_LOCKING:
+ /* For simple (single/multi) row INSERTs, we fallback to the
+ old style only if another transaction has already acquired
+ the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT
+ etc. type of statement. */
+ if (thd_sql_command(user_thd) == SQLCOM_INSERT) {
+ dict_table_t* table = prebuilt->table;
+
+ /* Acquire the AUTOINC mutex. */
+ dict_table_autoinc_lock(table);
+
+ /* We need to check that another transaction isn't
+ already holding the AUTOINC lock on the table. */
+ if (table->n_waiting_or_granted_auto_inc_locks) {
+ /* Release the mutex to avoid deadlocks. */
+ dict_table_autoinc_unlock(table);
+ } else {
+ break;
+ }
+ }
+ /* Fall through to old style locking. */
+
+ case AUTOINC_OLD_STYLE_LOCKING:
+ error = row_lock_table_autoinc_for_mysql(prebuilt);
+
+ if (error == DB_SUCCESS) {
+
+ /* Acquire the AUTOINC mutex. */
+ dict_table_autoinc_lock(prebuilt->table);
+ }
+ break;
+
+ default:
+ ut_error;
+ }
+
+ return(ulong(error));
+}
+
+/************************************************************************
+Reset the autoinc value in the table.*/
+
+ulong
+ha_innobase::innobase_reset_autoinc(
+/*================================*/
+ /* out: DB_SUCCESS if all went well
+ else error code */
+ ulonglong autoinc) /* in: value to store */
+{
+ ulint error;
+
+ error = innobase_autoinc_lock();
+
+ if (error == DB_SUCCESS) {
+
+ dict_table_autoinc_initialize(prebuilt->table, autoinc);
+
+ dict_table_autoinc_unlock(prebuilt->table);
+ }
+
+ return(ulong(error));
+}
+
+/************************************************************************
+Store the autoinc value in the table. The autoinc value is only set if
+it's greater than the existing autoinc value in the table.*/
+
+ulong
+ha_innobase::innobase_set_max_autoinc(
+/*==================================*/
+ /* out: DB_SUCCES if all went well
+ else error code */
+ ulonglong auto_inc) /* in: value to store */
+{
+ ulint error;
+
+ error = innobase_autoinc_lock();
+
+ if (error == DB_SUCCESS) {
+
+ dict_table_autoinc_update(prebuilt->table, auto_inc);
+
+ dict_table_autoinc_unlock(prebuilt->table);
+ }
+
+ return(ulong(error));
+}
+
+/************************************************************************
Stores a row in an InnoDB database, to the table specified in this
handle. */
int
ha_innobase::write_row(
/*===================*/
- /* out: error code */
- mysql_byte* record) /* in: a row in MySQL format */
+ /* out: error code */
+ uchar* record) /* in: a row in MySQL format */
{
- int error;
- longlong auto_inc;
- longlong dummy;
+ int error = 0;
ibool auto_inc_used= FALSE;
ulint sql_command;
trx_t* trx = thd_to_trx(user_thd);
@@ -3452,62 +3455,20 @@ no_commit:
num_write_row++;
+ /* This is the case where the table has an auto-increment column */
if (table->next_number_field && record == table->record[0]) {
- /* This is the case where the table has an
- auto-increment column */
-
- /* Initialize the auto-inc counter if it has not been
- initialized yet */
- if (0 == dict_table_autoinc_peek(prebuilt->table)) {
-
- /* This call initializes the counter */
- error = innobase_read_and_init_auto_inc(&dummy);
-
- if (error) {
- /* Deadlock or lock wait timeout */
-
- goto func_exit;
- }
-
- /* We have to set sql_stat_start to TRUE because
- the above call probably has called a select, and
- has reset that flag; row_insert_for_mysql has to
- know to set the IX intention lock on the table,
- something it only does at the start of each
- statement */
-
- prebuilt->sql_stat_start = TRUE;
- }
-
- /* We have to use the transactional lock mechanism on the
- auto-inc counter of the table to ensure that replication and
- roll-forward of the binlog exactly imitates also the given
- auto-inc values. The lock is released at each SQL statement's
- end. This lock also prevents a race where two threads would
- call ::get_auto_increment() simultaneously. */
-
- error = row_lock_table_autoinc_for_mysql(prebuilt);
-
- if (error != DB_SUCCESS) {
- /* Deadlock or lock wait timeout */
-
- error = convert_error_code_to_mysql(error, user_thd);
+ if ((error = update_auto_increment())) {
goto func_exit;
}
- /* We must use the handler code to update the auto-increment
- value to be sure that we increment it correctly. */
-
- if ((error= update_auto_increment()))
- goto func_exit;
- auto_inc_used = 1;
-
+ auto_inc_used = TRUE;
}
if (prebuilt->mysql_template == NULL
- || prebuilt->template_type != ROW_MYSQL_WHOLE_ROW) {
+ || prebuilt->template_type != ROW_MYSQL_WHOLE_ROW) {
+
/* Build the template used in converting quickly between
the two database formats */
@@ -3518,40 +3479,64 @@ no_commit:
error = row_insert_for_mysql((byte*) record, prebuilt);
- if (error == DB_SUCCESS && auto_inc_used) {
+ /* Handle duplicate key errors */
+ if (auto_inc_used) {
+ ulonglong auto_inc;
- /* Fetch the value that was set in the autoincrement field */
+ /* Note the number of rows processed for this statement, used
+ by get_auto_increment() to determine the number of AUTO-INC
+ values to reserve. This is only useful for a mult-value INSERT
+ and is a statement level counter.*/
+ if (trx->n_autoinc_rows > 0) {
+ --trx->n_autoinc_rows;
+ }
+ /* Get the value that MySQL attempted to store in the table.*/
auto_inc = table->next_number_field->val_int();
- if (auto_inc != 0) {
- /* This call will update the counter according to the
- value that was inserted in the table */
+ switch (error) {
+ case DB_DUPLICATE_KEY:
- dict_table_autoinc_update(prebuilt->table, auto_inc);
- }
- }
+ /* A REPLACE command and LOAD DATA INFILE REPLACE
+ handle a duplicate key error themselves, but we
+ must update the autoinc counter if we are performing
+ those statements. */
- /* A REPLACE command and LOAD DATA INFILE REPLACE handle a duplicate
- key error themselves, and we must update the autoinc counter if we are
- performing those statements. */
+ switch (sql_command) {
+ case SQLCOM_LOAD:
+ if ((trx->duplicates
+ & (TRX_DUP_IGNORE | TRX_DUP_REPLACE))) {
- if (error == DB_DUPLICATE_KEY && auto_inc_used
- && (sql_command == SQLCOM_REPLACE
- || sql_command == SQLCOM_REPLACE_SELECT
- || (sql_command == SQLCOM_INSERT
- && ((trx->duplicates
- & (TRX_DUP_IGNORE | TRX_DUP_REPLACE))
- == TRX_DUP_IGNORE))
- || (sql_command == SQLCOM_LOAD
- && ((trx->duplicates
- & (TRX_DUP_IGNORE | TRX_DUP_REPLACE))
- == (TRX_DUP_IGNORE | TRX_DUP_REPLACE))))) {
+ goto set_max_autoinc;
+ }
+ break;
- auto_inc = table->next_number_field->val_int();
+ case SQLCOM_REPLACE:
+ case SQLCOM_INSERT_SELECT:
+ case SQLCOM_REPLACE_SELECT:
+ goto set_max_autoinc;
+ break;
- if (auto_inc != 0) {
- dict_table_autoinc_update(prebuilt->table, auto_inc);
+ default:
+ break;
+ }
+
+ break;
+
+ case DB_SUCCESS:
+ /* If the actual value inserted is greater than
+ the upper limit of the interval, then we try and
+ update the table upper limit. Note: last_value
+ will be 0 if get_auto_increment() was not called.*/
+
+ if (auto_inc > prebuilt->last_value) {
+set_max_autoinc:
+ ut_a(prebuilt->table->autoinc_increment > 0);
+ auto_inc += prebuilt->table->autoinc_increment;
+
+ innobase_set_max_autoinc(auto_inc);
+ }
+ break;
}
}
@@ -3559,8 +3544,6 @@ no_commit:
error = convert_error_code_to_mysql(error, user_thd);
- /* Tell InnoDB server that there might be work for
- utility threads: */
func_exit:
innobase_active_small();
@@ -3576,16 +3559,16 @@ calc_row_difference(
/*================*/
/* out: error number or 0 */
upd_t* uvect, /* in/out: update vector */
- mysql_byte* old_row, /* in: old row in MySQL format */
- mysql_byte* new_row, /* in: new row in MySQL format */
+ uchar* old_row, /* in: old row in MySQL format */
+ uchar* new_row, /* in: new row in MySQL format */
struct st_table* table, /* in: table in MySQL data
dictionary */
- mysql_byte* upd_buff, /* in: buffer to use */
+ uchar* upd_buff, /* in: buffer to use */
ulint buff_len, /* in: buffer length */
row_prebuilt_t* prebuilt, /* in: InnoDB prebuilt struct */
THD* thd) /* in: user thread */
{
- mysql_byte* original_upd_buff = upd_buff;
+ uchar* original_upd_buff = upd_buff;
Field* field;
enum_field_types field_mysql_type;
uint n_fields;
@@ -3729,8 +3712,8 @@ int
ha_innobase::update_row(
/*====================*/
/* out: error number or 0 */
- const mysql_byte* old_row,/* in: old row in MySQL format */
- mysql_byte* new_row)/* in: new row in MySQL format */
+ const uchar* old_row, /* in: old row in MySQL format */
+ uchar* new_row) /* in: new row in MySQL format */
{
upd_t* uvect;
int error = 0;
@@ -3752,7 +3735,7 @@ ha_innobase::update_row(
/* Build an update vector from the modified fields in the rows
(uses upd_buff of the handle) */
- calc_row_difference(uvect, (mysql_byte*) old_row, new_row, table,
+ calc_row_difference(uvect, (uchar*) old_row, new_row, table,
upd_buff, (ulint)upd_and_key_val_buff_len,
prebuilt, user_thd);
@@ -3765,6 +3748,32 @@ ha_innobase::update_row(
error = row_update_for_mysql((byte*) old_row, prebuilt);
+ /* We need to do some special AUTOINC handling for the following case:
+
+ INSERT INTO t (c1,c2) VALUES(x,y) ON DUPLICATE KEY UPDATE ...
+
+ We need to use the AUTOINC counter that was actually used by
+ MySQL in the UPDATE statement, which can be different from the
+ value used in the INSERT statement.*/
+
+ if (error == DB_SUCCESS
+ && table->next_number_field
+ && new_row == table->record[0]
+ && thd_sql_command(user_thd) == SQLCOM_INSERT
+ && (trx->duplicates & (TRX_DUP_IGNORE | TRX_DUP_REPLACE))
+ == TRX_DUP_IGNORE) {
+
+ longlong auto_inc;
+
+ auto_inc = table->next_number_field->val_int();
+
+ if (auto_inc != 0) {
+ auto_inc += prebuilt->table->autoinc_increment;
+
+ innobase_set_max_autoinc(auto_inc);
+ }
+ }
+
innodb_srv_conc_exit_innodb(trx);
error = convert_error_code_to_mysql(error, user_thd);
@@ -3783,8 +3792,8 @@ Deletes a row given as the parameter. */
int
ha_innobase::delete_row(
/*====================*/
- /* out: error number or 0 */
- const mysql_byte* record) /* in: a row in MySQL format */
+ /* out: error number or 0 */
+ const uchar* record) /* in: a row in MySQL format */
{
int error = 0;
trx_t* trx = thd_to_trx(user_thd);
@@ -3793,6 +3802,30 @@ ha_innobase::delete_row(
ut_a(prebuilt->trx == trx);
+ /* Only if the table has an AUTOINC column */
+ if (table->found_next_number_field && record == table->record[0]) {
+ ulonglong dummy = 0;
+
+ /* First check whether the AUTOINC sub-system has been
+ initialized using the AUTOINC mutex. If not then we
+ do it the "proper" way, by acquiring the heavier locks. */
+ dict_table_autoinc_lock(prebuilt->table);
+
+ if (!prebuilt->table->autoinc_inited) {
+ dict_table_autoinc_unlock(prebuilt->table);
+
+ error = innobase_get_auto_increment(&dummy);
+
+ if (error == DB_SUCCESS) {
+ dict_table_autoinc_unlock(prebuilt->table);
+ } else {
+ goto error_exit;
+ }
+ } else {
+ dict_table_autoinc_unlock(prebuilt->table);
+ }
+ }
+
if (!prebuilt->upd_node) {
row_get_prebuilt_update_vector(prebuilt);
}
@@ -3807,6 +3840,7 @@ ha_innobase::delete_row(
innodb_srv_conc_exit_innodb(trx);
+error_exit:
error = convert_error_code_to_mysql(error, user_thd);
/* Tell the InnoDB server that there might be work for
@@ -4010,9 +4044,9 @@ ha_innobase::index_read(
/*====================*/
/* out: 0, HA_ERR_KEY_NOT_FOUND,
or error number */
- mysql_byte* buf, /* in/out: buffer for the returned
+ uchar* buf, /* in/out: buffer for the returned
row */
- const mysql_byte* key_ptr,/* in: key value; if this is NULL
+ const uchar* key_ptr, /* in: key value; if this is NULL
we position the cursor at the
start or end of index; this can
also contain an InnoDB row id, in
@@ -4109,54 +4143,78 @@ row with the current key value or prefix. */
int
ha_innobase::index_read_last(
/*=========================*/
- /* out: 0, HA_ERR_KEY_NOT_FOUND, or an
- error code */
- mysql_byte* buf, /* out: fetched row */
- const mysql_byte* key_ptr, /* in: key value, or a prefix of a full
- key value */
- uint key_len) /* in: length of the key val or prefix
- in bytes */
+ /* out: 0, HA_ERR_KEY_NOT_FOUND, or an
+ error code */
+ uchar* buf, /* out: fetched row */
+ const uchar* key_ptr,/* in: key value, or a prefix of a full
+ key value */
+ uint key_len)/* in: length of the key val or prefix
+ in bytes */
{
return(index_read(buf, key_ptr, key_len, HA_READ_PREFIX_LAST));
}
/************************************************************************
-Changes the active index of a handle. */
+Get the index for a handle. Does not change active index.*/
-int
-ha_innobase::change_active_index(
-/*=============================*/
- /* out: 0 or error code */
- uint keynr) /* in: use this index; MAX_KEY means always clustered
- index, even if it was internally generated by
- InnoDB */
+dict_index_t*
+ha_innobase::innobase_get_index(
+/*============================*/
+ /* out: NULL or index instance. */
+ uint keynr) /* in: use this index; MAX_KEY means always
+ clustered index, even if it was internally
+ generated by InnoDB */
{
- KEY* key=0;
- DBUG_ENTER("change_active_index");
+ KEY* key = 0;
+ dict_index_t* index = 0;
+
+ DBUG_ENTER("innobase_get_index");
ha_statistic_increment(&SSV::ha_read_key_count);
ut_ad(user_thd == ha_thd());
ut_a(prebuilt->trx == thd_to_trx(user_thd));
- active_index = keynr;
-
if (keynr != MAX_KEY && table->s->keys > 0) {
- key = table->key_info + active_index;
+ key = table->key_info + keynr;
- prebuilt->index = dict_table_get_index_noninline(
+ index = dict_table_get_index_noninline(
prebuilt->table, key->name);
} else {
- prebuilt->index = dict_table_get_first_index_noninline(
- prebuilt->table);
+ index = dict_table_get_first_index_noninline(prebuilt->table);
}
- if (!prebuilt->index) {
+ if (!index) {
sql_print_error(
"Innodb could not find key n:o %u with name %s "
"from dict cache for table %s",
keynr, key ? key->name : "NULL",
prebuilt->table->name);
+ }
+
+ DBUG_RETURN(index);
+}
+
+/************************************************************************
+Changes the active index of a handle. */
+
+int
+ha_innobase::change_active_index(
+/*=============================*/
+ /* out: 0 or error code */
+ uint keynr) /* in: use this index; MAX_KEY means always clustered
+ index, even if it was internally generated by
+ InnoDB */
+{
+ DBUG_ENTER("change_active_index");
+
+ ut_ad(user_thd == ha_thd());
+ ut_a(prebuilt->trx == thd_to_trx(user_thd));
+ active_index = keynr;
+
+ prebuilt->index = innobase_get_index(keynr);
+
+ if (!prebuilt->index) {
DBUG_RETURN(1);
}
@@ -4187,10 +4245,10 @@ int
ha_innobase::index_read_idx(
/*========================*/
/* out: error number or 0 */
- mysql_byte* buf, /* in/out: buffer for the returned
+ uchar* buf, /* in/out: buffer for the returned
row */
uint keynr, /* in: use this index */
- const mysql_byte* key, /* in: key value; if this is NULL
+ const uchar* key, /* in: key value; if this is NULL
we position the cursor at the
start or end of index */
uint key_len, /* in: key value length */
@@ -4213,7 +4271,7 @@ ha_innobase::general_fetch(
/*=======================*/
/* out: 0, HA_ERR_END_OF_FILE, or error
number */
- mysql_byte* buf, /* in/out: buffer for next row in MySQL
+ uchar* buf, /* in/out: buffer for next row in MySQL
format */
uint direction, /* in: ROW_SEL_NEXT or ROW_SEL_PREV */
uint match_mode) /* in: 0, ROW_SEL_EXACT, or
@@ -4260,7 +4318,7 @@ ha_innobase::index_next(
/*====================*/
/* out: 0, HA_ERR_END_OF_FILE, or error
number */
- mysql_byte* buf) /* in/out: buffer for next row in MySQL
+ uchar* buf) /* in/out: buffer for next row in MySQL
format */
{
ha_statistic_increment(&SSV::ha_read_next_count);
@@ -4276,8 +4334,8 @@ ha_innobase::index_next_same(
/*=========================*/
/* out: 0, HA_ERR_END_OF_FILE, or error
number */
- mysql_byte* buf, /* in/out: buffer for the row */
- const mysql_byte* key, /* in: key value */
+ uchar* buf, /* in/out: buffer for the row */
+ const uchar* key, /* in: key value */
uint keylen) /* in: key value length */
{
ha_statistic_increment(&SSV::ha_read_next_count);
@@ -4292,10 +4350,8 @@ positioned using index_read. */
int
ha_innobase::index_prev(
/*====================*/
- /* out: 0, HA_ERR_END_OF_FILE, or error
- number */
- mysql_byte* buf) /* in/out: buffer for previous row in MySQL
- format */
+ /* out: 0, HA_ERR_END_OF_FILE, or error number */
+ uchar* buf) /* in/out: buffer for previous row in MySQL format */
{
ha_statistic_increment(&SSV::ha_read_prev_count);
@@ -4309,9 +4365,8 @@ corresponding row to buf. */
int
ha_innobase::index_first(
/*=====================*/
- /* out: 0, HA_ERR_END_OF_FILE,
- or error code */
- mysql_byte* buf) /* in/out: buffer for the row */
+ /* out: 0, HA_ERR_END_OF_FILE, or error code */
+ uchar* buf) /* in/out: buffer for the row */
{
int error;
@@ -4336,8 +4391,8 @@ corresponding row to buf. */
int
ha_innobase::index_last(
/*====================*/
- /* out: 0, HA_ERR_END_OF_FILE, or error code */
- mysql_byte* buf) /* in/out: buffer for the row */
+ /* out: 0, HA_ERR_END_OF_FILE, or error code */
+ uchar* buf) /* in/out: buffer for the row */
{
int error;
@@ -4406,7 +4461,7 @@ int
ha_innobase::rnd_next(
/*==================*/
/* out: 0, HA_ERR_END_OF_FILE, or error number */
- mysql_byte* buf)/* in/out: returns the row in this buffer,
+ uchar* buf) /* in/out: returns the row in this buffer,
in MySQL format */
{
int error;
@@ -4433,14 +4488,12 @@ Fetches a row from the table based on a row reference. */
int
ha_innobase::rnd_pos(
/*=================*/
- /* out: 0, HA_ERR_KEY_NOT_FOUND,
- or error code */
- mysql_byte* buf, /* in/out: buffer for the row */
- mysql_byte* pos) /* in: primary key value of the row in the
- MySQL format, or the row id if the clustered
- index was internally generated by InnoDB;
- the length of data in pos has to be
- ref_length */
+ /* out: 0, HA_ERR_KEY_NOT_FOUND, or error code */
+ uchar* buf, /* in/out: buffer for the row */
+ uchar* pos) /* in: primary key value of the row in the
+ MySQL format, or the row id if the clustered
+ index was internally generated by InnoDB; the
+ length of data in pos has to be ref_length */
{
int error;
uint keynr = active_index;
@@ -4493,7 +4546,7 @@ was positioned the last time. */
void
ha_innobase::position(
/*==================*/
- const mysql_byte* record) /* in: row in MySQL format */
+ const uchar* record) /* in: row in MySQL format */
{
uint len;
@@ -4635,7 +4688,7 @@ create_table_def(
}
}
- dict_mem_table_add_col(table,
+ dict_mem_table_add_col(table, table->heap,
(char*) field->field_name,
col_type,
dtype_form_prtype(
@@ -4999,7 +5052,10 @@ ha_innobase::create(
maximum value in the column. */
auto_inc_value = create_info->auto_increment_value;
+
+ dict_table_autoinc_lock(innobase_table);
dict_table_autoinc_initialize(innobase_table, auto_inc_value);
+ dict_table_autoinc_unlock(innobase_table);
}
/* Tell the InnoDB server that there might be work for
@@ -5350,7 +5406,7 @@ ha_innobase::records_in_range(
{
KEY* key;
dict_index_t* index;
- mysql_byte* key_val_buff2 = (mysql_byte*) my_malloc(
+ uchar* key_val_buff2 = (uchar*) my_malloc(
table->s->reclength
+ table->s->max_key_length + 100,
MYF(MY_FAE));
@@ -5392,7 +5448,7 @@ ha_innobase::records_in_range(
(ulint)upd_and_key_val_buff_len,
index,
(byte*) (min_key ? min_key->key :
- (const mysql_byte*) 0),
+ (const uchar*) 0),
(ulint) (min_key ? min_key->length : 0),
prebuilt->trx);
@@ -5400,7 +5456,7 @@ ha_innobase::records_in_range(
range_end, (byte*) key_val_buff2,
buff2_len, index,
(byte*) (max_key ? max_key->key :
- (const mysql_byte*) 0),
+ (const uchar*) 0),
(ulint) (max_key ? max_key->length : 0),
prebuilt->trx);
@@ -6800,12 +6856,12 @@ bool innobase_show_status(handlerton *hton, THD* thd,
locking.
****************************************************************************/
-static mysql_byte* innobase_get_key(INNOBASE_SHARE* share, size_t *length,
+static uchar* innobase_get_key(INNOBASE_SHARE* share, size_t *length,
my_bool not_used __attribute__((unused)))
{
*length=share->table_name_length;
- return (mysql_byte*) share->table_name;
+ return (uchar*) share->table_name;
}
static INNOBASE_SHARE* get_share(const char* table_name)
@@ -6815,7 +6871,7 @@ static INNOBASE_SHARE* get_share(const char* table_name)
uint length=(uint) strlen(table_name);
if (!(share=(INNOBASE_SHARE*) hash_search(&innobase_open_tables,
- (mysql_byte*) table_name,
+ (uchar*) table_name,
length))) {
share = (INNOBASE_SHARE *) my_malloc(sizeof(*share)+length+1,
@@ -6826,7 +6882,7 @@ static INNOBASE_SHARE* get_share(const char* table_name)
strmov(share->table_name,table_name);
if (my_hash_insert(&innobase_open_tables,
- (mysql_byte*) share)) {
+ (uchar*) share)) {
pthread_mutex_unlock(&innobase_share_mutex);
my_free(share,0);
@@ -6848,7 +6904,7 @@ static void free_share(INNOBASE_SHARE* share)
pthread_mutex_lock(&innobase_share_mutex);
if (!--share->use_count) {
- hash_delete(&innobase_open_tables, (mysql_byte*) share);
+ hash_delete(&innobase_open_tables, (uchar*) share);
thr_lock_delete(&share->lock);
pthread_mutex_destroy(&share->mutex);
my_free(share, MYF(0));
@@ -7069,15 +7125,15 @@ the value of the auto-inc counter. */
int
ha_innobase::innobase_read_and_init_auto_inc(
/*=========================================*/
- /* out: 0 or error code: deadlock or lock wait
- timeout */
- longlong* ret) /* out: auto-inc value */
+ /* out: 0 or error code:
+ deadlock or lock wait timeout */
+ longlong* value) /* out: the autoinc value */
{
longlong auto_inc;
- ulint old_select_lock_type;
- ibool trx_was_not_started = FALSE;
ibool stmt_start;
- int error;
+ int mysql_error = 0;
+ dict_table_t* innodb_table = prebuilt->table;
+ ibool trx_was_not_started = FALSE;
ut_a(prebuilt);
ut_a(prebuilt->table);
@@ -7098,103 +7154,47 @@ ha_innobase::innobase_read_and_init_auto_inc(
trx_search_latch_release_if_reserved(prebuilt->trx);
- auto_inc = dict_table_autoinc_read(prebuilt->table);
-
- if (auto_inc != 0) {
- /* Already initialized */
- *ret = auto_inc;
-
- error = 0;
-
- goto func_exit_early;
- }
+ dict_table_autoinc_lock(prebuilt->table);
- error = row_lock_table_autoinc_for_mysql(prebuilt);
-
- if (error != DB_SUCCESS) {
- error = convert_error_code_to_mysql(error, user_thd);
-
- goto func_exit_early;
- }
-
- /* Check again if someone has initialized the counter meanwhile */
auto_inc = dict_table_autoinc_read(prebuilt->table);
- if (auto_inc != 0) {
- *ret = auto_inc;
-
- error = 0;
-
- goto func_exit_early;
+ /* Was the AUTOINC counter reset during normal processing, if
+ so then we simply start count from 1. No need to go to the index.*/
+ if (auto_inc == 0 && innodb_table->autoinc_inited) {
+ ++auto_inc;
+ dict_table_autoinc_initialize(innodb_table, auto_inc);
}
- (void) extra(HA_EXTRA_KEYREAD);
- index_init(table->s->next_number_index, 1);
+ if (auto_inc == 0) {
+ dict_index_t* index;
+ ulint error = DB_SUCCESS;
+ const char* autoinc_col_name;
- /* Starting from 5.0.9, we use a consistent read to read the auto-inc
- column maximum value. This eliminates the spurious deadlocks caused
- by the row X-lock that we previously used. Note the following flaw
- in our algorithm: if some other user meanwhile UPDATEs the auto-inc
- column, our consistent read will not return the largest value. We
- accept this flaw, since the deadlocks were a bigger trouble. */
+ ut_a(!innodb_table->autoinc_inited);
- /* Fetch all the columns in the key */
+ index = innobase_get_index(table->s->next_number_index);
- prebuilt->hint_need_to_fetch_extra_cols = ROW_RETRIEVE_ALL_COLS;
-
- old_select_lock_type = prebuilt->select_lock_type;
- prebuilt->select_lock_type = LOCK_NONE;
-
- /* Eliminate an InnoDB error print that happens when we try to SELECT
- from a table when no table has been locked in ::external_lock(). */
- prebuilt->trx->n_mysql_tables_in_use++;
-
- error = index_last(table->record[1]);
+ autoinc_col_name = table->found_next_number_field->field_name;
- prebuilt->trx->n_mysql_tables_in_use--;
- prebuilt->select_lock_type = old_select_lock_type;
+ error = row_search_max_autoinc(
+ index, autoinc_col_name, &auto_inc);
- if (error) {
- if (error == HA_ERR_END_OF_FILE) {
- /* The table was empty, initialize to 1 */
- auto_inc = 1;
-
- error = 0;
+ if (error == DB_SUCCESS) {
+ ++auto_inc;
+ dict_table_autoinc_initialize(innodb_table, auto_inc);
} else {
- /* This should not happen in a consistent read */
- sql_print_error("Consistent read of auto-inc column "
- "returned %lu", (ulong) error);
- auto_inc = -1;
+ fprintf(stderr, " InnoDB error: Couldn't read the "
+ "max AUTOINC value from index (%s).\n",
+ index->name);
- goto func_exit;
+ mysql_error = 1;
}
- } else {
- /* Initialize to max(col) + 1; we use
- 'found_next_number_field' below because MySQL in SHOW TABLE
- STATUS does not seem to set 'next_number_field'. The comment
- in table.h says that 'next_number_field' is set when it is
- 'active'.
- Since 5.1 MySQL enforces that we announce fields which we will
- read; as we only do a val_*() call, dbug_tmp_use_all_columns()
- with read_set is sufficient. */
-
- my_bitmap_map *old_map;
- old_map= dbug_tmp_use_all_columns(table, table->read_set);
- auto_inc = (longlong) table->found_next_number_field->
- val_int_offset(table->s->rec_buff_length) + 1;
- dbug_tmp_restore_column_map(table->read_set, old_map);
}
- dict_table_autoinc_initialize(prebuilt->table, auto_inc);
-
-func_exit:
- (void) extra(HA_EXTRA_NO_KEYREAD);
+ *value = auto_inc;
- index_end();
+ dict_table_autoinc_unlock(prebuilt->table);
- *ret = auto_inc;
-
-func_exit_early:
/* Since MySQL does not seem to call autocommit after SHOW TABLE
STATUS (even if we would register the trx here), we commit our
transaction here if it was started here. This is to eliminate a
@@ -7209,6 +7209,63 @@ func_exit_early:
prebuilt->sql_stat_start = stmt_start;
+ return(mysql_error);
+}
+
+/*******************************************************************************
+Read the next autoinc value, initialize the table if it's not initialized.
+On return if there is no error then the tables AUTOINC lock is locked.*/
+
+ulong
+ha_innobase::innobase_get_auto_increment(
+ ulonglong* value) /* out: autoinc value */
+{
+ ulong error;
+
+ do {
+ error = innobase_autoinc_lock();
+
+ if (error == DB_SUCCESS) {
+ ib_longlong autoinc;
+
+ /* Determine the first value of the interval */
+ autoinc = dict_table_autoinc_read(prebuilt->table);
+
+ /* We need to initialize the AUTO-INC value, for
+ that we release all locks.*/
+ if (autoinc <= 0) {
+ trx_t* trx;
+
+ trx = prebuilt->trx;
+ dict_table_autoinc_unlock(prebuilt->table);
+
+ if (trx->auto_inc_lock) {
+ /* If we had reserved the AUTO-INC
+ lock in this SQL statement we release
+ it before retrying.*/
+ row_unlock_table_autoinc_for_mysql(trx);
+ }
+
+ /* Just to make sure */
+ ut_a(!trx->auto_inc_lock);
+
+ int mysql_error;
+
+ mysql_error = innobase_read_and_init_auto_inc(
+ &autoinc);
+
+ if (!mysql_error) {
+ /* Should have read the proper value */
+ ut_a(autoinc > 0);
+ } else {
+ error = DB_ERROR;
+ }
+ } else {
+ *value = (ulonglong) autoinc;
+ }
+ }
+ } while (*value == 0 && error == DB_SUCCESS);
+
return(error);
}
@@ -7220,37 +7277,98 @@ auto-inc counter in *first_value, and ULONGLONG_MAX in *nb_reserved_values (as
we have a table-level lock). offset, increment, nb_desired_values are ignored.
*first_value is set to -1 if error (deadlock or lock wait timeout) */
-void ha_innobase::get_auto_increment(
+void
+ha_innobase::get_auto_increment(
/*=================================*/
- ulonglong offset, /* in */
- ulonglong increment, /* in */
- ulonglong nb_desired_values, /* in */
- ulonglong *first_value, /* out */
- ulonglong *nb_reserved_values) /* out */
+ ulonglong offset, /* in: */
+ ulonglong increment, /* in: table autoinc increment */
+ ulonglong nb_desired_values, /* in: number of values reqd */
+ ulonglong *first_value, /* out: the autoinc value */
+ ulonglong *nb_reserved_values) /* out: count of reserved values */
{
- longlong nr;
- int error;
+ ulint error;
+ ulonglong autoinc = 0;
/* Prepare prebuilt->trx in the table handle */
update_thd(ha_thd());
- error = innobase_read_and_init_auto_inc(&nr);
+ error = innobase_get_auto_increment(&autoinc);
- if (error) {
- /* This should never happen in the current (5.0.6) code, since
- we call this function only after the counter has been
- initialized. */
+ if (error != DB_SUCCESS) {
+ /* This should never happen in the code > ver 5.0.6,
+ since we call this function only after the counter
+ has been initialized. */
ut_print_timestamp(stderr);
- sql_print_error("Error %lu in ::get_auto_increment()",
- (ulong) error);
- *first_value= (~(ulonglong) 0);
+ sql_print_error("Error %lu in ::get_auto_increment()", error);
+
+ *first_value = (~(ulonglong) 0);
return;
}
- *first_value= (ulonglong) nr;
- /* table-level autoinc lock reserves up to +inf */
- *nb_reserved_values= ULONGLONG_MAX;
+ /* This is a hack, since nb_desired_values seems to be accurate only
+ for the first call to get_auto_increment() for multi-row INSERT and
+ meaningless for other statements e.g, LOAD etc. Subsequent calls to
+ this method for the same statement results in different values which
+ don't make sense. Therefore we store the value the first time we are
+ called and count down from that as rows are written (see write_row()).
+
+ We make one exception, if the *first_value is precomputed by MySQL
+ we use that value. And set the number of reserved values to 1 if
+ this is the first time we were called for the SQL statement, this
+ will force MySQL to call us for the next value. If we are in the
+ middle of a multi-row insert we preserve the existing counter.*/
+ if (*first_value == 0) {
+
+ /* Called for the first time ? */
+ if (prebuilt->trx->n_autoinc_rows == 0) {
+
+ prebuilt->trx->n_autoinc_rows = (ulint) nb_desired_values;
+
+ /* It's possible for nb_desired_values to be 0:
+ e.g., INSERT INTO T1(C) SELECT C FROM T2; */
+ if (nb_desired_values == 0) {
+
+ ++prebuilt->trx->n_autoinc_rows;
+ }
+ }
+
+ *first_value = autoinc;
+
+ } else if (prebuilt->trx->n_autoinc_rows == 0) {
+
+ prebuilt->trx->n_autoinc_rows = 1;
+ }
+
+ ut_a(prebuilt->trx->n_autoinc_rows > 0);
+
+ *nb_reserved_values = prebuilt->trx->n_autoinc_rows;
+
+ /* With old style AUTOINC locking we only update the table's
+ AUTOINC counter after attempting to insert the row. */
+ if (innobase_autoinc_lock_mode != AUTOINC_OLD_STYLE_LOCKING) {
+
+ /* Compute the last value in the interval */
+ prebuilt->last_value = *first_value +
+ (*nb_reserved_values * increment);
+
+ ut_a(prebuilt->last_value >= *first_value);
+
+ /* Update the table autoinc variable */
+ dict_table_autoinc_update(
+ prebuilt->table, prebuilt->last_value);
+ } else {
+ /* This will force write_row() into attempting an update
+ of the table's AUTOINC counter. */
+ prebuilt->last_value = 0;
+ }
+
+ /* The increment to be used to increase the AUTOINC value, we use
+ this in write_row() and update_row() to increase the autoinc counter
+ for columns that are filled by the user.*/
+ prebuilt->table->autoinc_increment = increment;
+
+ dict_table_autoinc_unlock(prebuilt->table);
}
/* See comment in handler.h */
@@ -7271,7 +7389,7 @@ ha_innobase::reset_auto_increment(ulonglong value)
DBUG_RETURN(error);
}
- dict_table_autoinc_initialize(prebuilt->table, value);
+ innobase_reset_autoinc(value);
DBUG_RETURN(0);
}
@@ -7298,9 +7416,9 @@ ha_innobase::cmp_ref(
/*=================*/
/* out: < 0 if ref1 < ref2, 0 if equal, else
> 0 */
- const mysql_byte* ref1, /* in: an (internal) primary key value in the
+ const uchar* ref1, /* in: an (internal) primary key value in the
MySQL key value format */
- const mysql_byte* ref2) /* in: an (internal) primary key value in the
+ const uchar* ref2) /* in: an (internal) primary key value in the
MySQL key value format */
{
enum_field_types mysql_type;
@@ -7557,6 +7675,7 @@ innobase_xa_prepare(
row_unlock_table_autoinc_for_mysql(trx);
}
+
/* Store the current undo_no of the transaction so that we
know where to roll back if we have to roll back the next
SQL statement */
@@ -7905,6 +8024,17 @@ static MYSQL_SYSVAR_STR(data_file_path, innobase_data_file_path,
"Path to individual files and their sizes.",
NULL, NULL, NULL);
+static MYSQL_SYSVAR_LONG(autoinc_lock_mode, innobase_autoinc_lock_mode,
+ PLUGIN_VAR_RQCMDARG,
+ "The AUTOINC lock modes supported by InnoDB:\n"
+ " 0 => Old style AUTOINC locking (for backward compatibility)\n"
+ " 1 => New style AUTOINC locking\n"
+ " 2 => No AUTOINC locking (unsafe for SBR)",
+ NULL, NULL,
+ AUTOINC_NEW_STYLE_LOCKING, /* Default setting */
+ AUTOINC_OLD_STYLE_LOCKING, /* Minimum value */
+ AUTOINC_NO_LOCKING, 0); /* Maximum value */
+
static struct st_mysql_sys_var* innobase_system_variables[]= {
MYSQL_SYSVAR(additional_mem_pool_size),
MYSQL_SYSVAR(autoextend_increment),
@@ -7943,6 +8073,7 @@ static struct st_mysql_sys_var* innobase_system_variables[]= {
MYSQL_SYSVAR(table_locks),
MYSQL_SYSVAR(thread_concurrency),
MYSQL_SYSVAR(thread_sleep_delay),
+ MYSQL_SYSVAR(autoinc_lock_mode),
NULL
};
diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h
index 270b000dfc4..fe5ebd57990 100644
--- a/storage/innobase/handler/ha_innodb.h
+++ b/storage/innobase/handler/ha_innodb.h
@@ -32,7 +32,10 @@ typedef struct st_innobase_share {
} INNOBASE_SHARE;
+struct dict_index_struct;
struct row_prebuilt_struct;
+
+typedef struct dict_index_struct dict_index_t;
typedef struct row_prebuilt_struct row_prebuilt_t;
/* The class defining a handle to an Innodb table */
@@ -70,6 +73,11 @@ class ha_innobase: public handler
int change_active_index(uint keynr);
int general_fetch(uchar* buf, uint direction, uint match_mode);
int innobase_read_and_init_auto_inc(longlong* ret);
+ ulong innobase_autoinc_lock();
+ ulong innobase_set_max_autoinc(ulonglong auto_inc);
+ ulong innobase_reset_autoinc(ulonglong auto_inc);
+ ulong innobase_get_auto_increment(ulonglong* value);
+ dict_index_t* innobase_get_index(uint keynr);
/* Init values for the class: */
public:
diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c
index 4e291924e0e..44972356304 100644
--- a/storage/innobase/ibuf/ibuf0ibuf.c
+++ b/storage/innobase/ibuf/ibuf0ibuf.c
@@ -462,7 +462,8 @@ ibuf_data_init_for_space(
page_t* root;
page_t* header_page;
mtr_t mtr;
- char buf[50];
+ char* buf;
+ mem_heap_t* heap;
dict_table_t* table;
dict_index_t* index;
ulint n_used;
@@ -516,16 +517,20 @@ ibuf_data_init_for_space(
ibuf_exit();
+ heap = mem_heap_create(450);
+ buf = mem_heap_alloc(heap, 50);
+
sprintf(buf, "SYS_IBUF_TABLE_%lu", (ulong) space);
/* use old-style record format for the insert buffer */
table = dict_mem_table_create(buf, space, 2, 0);
- dict_mem_table_add_col(table, "PAGE_NO", DATA_BINARY, 0, 0);
- dict_mem_table_add_col(table, "TYPES", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "PAGE_NO", DATA_BINARY, 0, 0);
+ dict_mem_table_add_col(table, heap, "TYPES", DATA_BINARY, 0, 0);
table->id = ut_dulint_add(DICT_IBUF_ID_MIN, space);
- dict_table_add_to_cache(table);
+ dict_table_add_to_cache(table, heap);
+ mem_heap_free(heap);
index = dict_mem_index_create(
buf, "CLUST_IND", space,
@@ -1139,7 +1144,7 @@ ibuf_dummy_index_add_col(
ulint len) /* in: length of the column */
{
ulint i = index->table->n_def;
- dict_mem_table_add_col(index->table, "DUMMY",
+ dict_mem_table_add_col(index->table, NULL, NULL,
dtype_get_mtype(type),
dtype_get_prtype(type),
dtype_get_len(type));
@@ -1161,11 +1166,6 @@ ibuf_dummy_index_free(
dict_mem_table_free(table);
}
-void
-dict_index_print_low(
-/*=================*/
- dict_index_t* index); /* in: index */
-
/*************************************************************************
Builds the entry to insert into a non-clustered index when we have the
corresponding record in an ibuf index. */
diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h
index eb31043ecc3..2f038b21e8e 100644
--- a/storage/innobase/include/dict0dict.h
+++ b/storage/innobase/include/dict0dict.h
@@ -171,6 +171,13 @@ dict_col_name_is_reserved(
/* out: TRUE if name is reserved */
const char* name); /* in: column name */
/************************************************************************
+Acquire the autoinc lock.*/
+
+void
+dict_table_autoinc_lock(
+/*====================*/
+ dict_table_t* table); /* in: table */
+/************************************************************************
Initializes the autoinc counter. It is not an error to initialize an already
initialized counter. */
@@ -180,22 +187,6 @@ dict_table_autoinc_initialize(
dict_table_t* table, /* in: table */
ib_longlong value); /* in: next value to assign to a row */
/************************************************************************
-Gets the next autoinc value (== autoinc counter value), 0 if not yet
-initialized. If initialized, increments the counter by 1. */
-
-ib_longlong
-dict_table_autoinc_get(
-/*===================*/
- /* out: value for a new row, or 0 */
- dict_table_t* table); /* in: table */
-/************************************************************************
-Decrements the autoinc counter value by 1. */
-
-void
-dict_table_autoinc_decrement(
-/*=========================*/
- dict_table_t* table); /* in: table */
-/************************************************************************
Reads the next autoinc value (== autoinc counter value), 0 if not yet
initialized. */
@@ -205,15 +196,6 @@ dict_table_autoinc_read(
/* out: value for a new row, or 0 */
dict_table_t* table); /* in: table */
/************************************************************************
-Peeks the autoinc counter value, 0 if not yet initialized. Does not
-increment the counter. The read not protected by any mutex! */
-
-ib_longlong
-dict_table_autoinc_peek(
-/*====================*/
- /* out: value of the counter */
- dict_table_t* table); /* in: table */
-/************************************************************************
Updates the autoinc counter if the value supplied is equal or bigger than the
current value. If not inited, does nothing. */
@@ -223,13 +205,29 @@ dict_table_autoinc_update(
dict_table_t* table, /* in: table */
ib_longlong value); /* in: value which was assigned to a row */
+/************************************************************************
+Release the autoinc lock.*/
+
+void
+dict_table_autoinc_unlock(
+/*======================*/
+ dict_table_t* table); /* in: table */
+/**************************************************************************
+Adds system columns to a table object. */
+
+void
+dict_table_add_system_columns(
+/*==========================*/
+ dict_table_t* table, /* in/out: table */
+ mem_heap_t* heap); /* in: temporary heap */
/**************************************************************************
Adds a table object to the dictionary cache. */
void
dict_table_add_to_cache(
/*====================*/
- dict_table_t* table); /* in: table */
+ dict_table_t* table, /* in: table */
+ mem_heap_t* heap); /* in: temporary heap */
/**************************************************************************
Removes a table object from the dictionary cache. */
diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h
index 647035c2fff..a05bc513efd 100644
--- a/storage/innobase/include/dict0mem.h
+++ b/storage/innobase/include/dict0mem.h
@@ -72,7 +72,8 @@ void
dict_mem_table_add_col(
/*===================*/
dict_table_t* table, /* in: table */
- const char* name, /* in: column name */
+ mem_heap_t* heap, /* in: temporary memory heap, or NULL */
+ const char* name, /* in: column name, or NULL */
ulint mtype, /* in: main datatype */
ulint prtype, /* in: precise type */
ulint len); /* in: precision */
@@ -314,11 +315,11 @@ struct dict_table_struct{
unsigned n_cols:10;/* number of columns */
dict_col_t* cols; /* array of column descriptions */
const char* col_names;
- /* n_def column names packed in an
- "name1\0name2\0...nameN\0" array. until
- n_def reaches n_cols, this is allocated with
- ut_malloc, and the final size array is
- allocated through the table's heap. */
+ /* Column names packed in a character string
+ "name1\0name2\0...nameN\0". Until
+ the string contains n_cols, it will be
+ allocated from a temporary heap. The final
+ string will be allocated from table->heap. */
hash_node_t name_hash; /* hash chain node */
hash_node_t id_hash; /* hash chain node */
UT_LIST_BASE_NODE_T(dict_index_t)
@@ -410,6 +411,21 @@ struct dict_table_struct{
SELECT MAX(auto inc column) */
ib_longlong autoinc;/* autoinc counter value to give to the
next inserted row */
+
+ ib_longlong autoinc_increment;
+ /* The increment step of the auto increment
+ column. Value must be greater than or equal
+ to 1 */
+ ulong n_waiting_or_granted_auto_inc_locks;
+ /* This counter is used to track the number
+ of granted and pending autoinc locks on this
+ table. This value is set after acquiring the
+ kernel mutex but we peek the contents to
+ determine whether other transactions have
+ acquired the AUTOINC lock or not. Of course
+ only one transaction can be granted the
+ lock but there can be multiple waiters. */
+
#ifdef UNIV_DEBUG
ulint magic_n;/* magic number */
# define DICT_TABLE_MAGIC_N 76333786
diff --git a/storage/innobase/include/lock0lock.h b/storage/innobase/include/lock0lock.h
index 059c459c374..8b08b6284f6 100644
--- a/storage/innobase/include/lock0lock.h
+++ b/storage/innobase/include/lock0lock.h
@@ -609,7 +609,7 @@ lock_validate(void);
/* out: TRUE if ok */
/*************************************************************************
Return approximate number or record locks (bits set in the bitmap) for
-this transaction. Since delete-marked records maybe removed, the
+this transaction. Since delete-marked records may be removed, the
record count will not be precise. */
ulint
diff --git a/storage/innobase/include/mem0mem.ic b/storage/innobase/include/mem0mem.ic
index e59443da73d..adae9ad8a33 100644
--- a/storage/innobase/include/mem0mem.ic
+++ b/storage/innobase/include/mem0mem.ic
@@ -271,15 +271,19 @@ mem_heap_free_heap_top(
ut_ad(mem_block_get_start(block) <= mem_block_get_free(block));
/* In the debug version erase block from top up */
-
- mem_erase_buf(old_top, (byte*)block + block->len - old_top);
+ {
+ ulint len = (byte*)block + block->len - old_top;
+ mem_erase_buf(old_top, len);
+ UNIV_MEM_FREE(old_top, len);
+ }
/* Update allocated memory count */
mutex_enter(&mem_hash_mutex);
mem_current_allocated_memory -= (total_size - size);
mutex_exit(&mem_hash_mutex);
-
-#endif
+#else /* UNIV_MEM_DEBUG */
+ UNIV_MEM_FREE(old_top, (byte*)block + block->len - old_top);
+#endif /* UNIV_MEM_DEBUG */
/* If free == start, we may free the block if it is not the first
one */
diff --git a/storage/innobase/include/row0mysql.h b/storage/innobase/include/row0mysql.h
index 1448efe94fe..aabb7f5f047 100644
--- a/storage/innobase/include/row0mysql.h
+++ b/storage/innobase/include/row0mysql.h
@@ -670,6 +670,7 @@ struct row_prebuilt_struct {
to this heap */
mem_heap_t* old_vers_heap; /* memory heap where a previous
version is built in consistent read */
+ ulonglong last_value; /* last value of AUTO-INC interval */
ulint magic_n2; /* this should be the same as
magic_n */
};
diff --git a/storage/innobase/include/row0sel.h b/storage/innobase/include/row0sel.h
index 96273a18cd5..4bde648f18e 100644
--- a/storage/innobase/include/row0sel.h
+++ b/storage/innobase/include/row0sel.h
@@ -171,7 +171,17 @@ row_search_check_if_query_cache_permitted(
trx_t* trx, /* in: transaction object */
const char* norm_name); /* in: concatenation of database name,
'/' char, table name */
+/***********************************************************************
+Read the max AUTOINC value from an index. */
+ulint
+row_search_max_autoinc(
+/*===================*/
+ /* out: DB_SUCCESS if all OK else
+ error code */
+ dict_index_t* index, /* in: index to search */
+ const char* col_name, /* in: autoinc column name */
+ ib_longlong* value); /* out: AUTOINC value read */
/* A structure for caching column values for prefetched rows */
struct sel_buf_struct{
diff --git a/storage/innobase/include/sync0rw.ic b/storage/innobase/include/sync0rw.ic
index f8b5367739a..b41593d0a96 100644
--- a/storage/innobase/include/sync0rw.ic
+++ b/storage/innobase/include/sync0rw.ic
@@ -231,7 +231,7 @@ rw_lock_s_lock_func(
owns an s-lock here, it may end up in a deadlock with another thread
which requests an x-lock here. Therefore, we will forbid recursive
s-locking of a latch: the following assert will warn the programmer
- of the possibility of a tjis kind of deadlock. If we want to implement
+ of the possibility of this kind of a deadlock. If we want to implement
safe recursive s-locking, we should keep in a list the thread ids of
the threads which have s-locked a latch. This would use some CPU
time. */
diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h
index 2459e76c4c1..5017c15aaf0 100644
--- a/storage/innobase/include/trx0trx.h
+++ b/storage/innobase/include/trx0trx.h
@@ -482,31 +482,6 @@ struct trx_struct{
ib_longlong mysql_log_offset;/* if MySQL binlog is used, this field
contains the end offset of the binlog
entry */
- const char* mysql_master_log_file_name;
- /* if the database server is a MySQL
- replication slave, we have here the
- master binlog name up to which
- replication has processed; otherwise
- this is a pointer to a null
- character */
- ib_longlong mysql_master_log_pos;
- /* if the database server is a MySQL
- replication slave, this is the
- position in the log file up to which
- replication has processed */
- /* A MySQL variable mysql_thd->synchronous_repl tells if we have
- to use synchronous replication. See ha_innodb.cc. */
- char* repl_wait_binlog_name;/* NULL, or if synchronous MySQL
- replication is used, the binlog name
- up to which we must communicate the
- binlog to the slave, before returning
- from a commit; this is the same as
- mysql_log_file_name, but we allocate
- and copy the name to a separate buffer
- here */
- ib_longlong repl_wait_binlog_pos;/* see above at
- repl_wait_binlog_name */
-
os_thread_id_t mysql_thread_id;/* id of the MySQL thread associated
with this transaction object */
ulint mysql_process_no;/* since in Linux, 'top' reports
@@ -681,6 +656,9 @@ struct trx_struct{
trx_undo_arr_t* undo_no_arr; /* array of undo numbers of undo log
records which are currently processed
by a rollback operation */
+ ulint n_autoinc_rows; /* no. of AUTO-INC rows required for
+ an SQL statement. This is useful for
+ multi-row INSERTs */
/*------------------------------*/
char detailed_error[256]; /* detailed error message for last
error, or empty. */
diff --git a/storage/innobase/include/ut0mem.h b/storage/innobase/include/ut0mem.h
index 90c16f4fad5..e56895bc142 100644
--- a/storage/innobase/include/ut0mem.h
+++ b/storage/innobase/include/ut0mem.h
@@ -63,7 +63,7 @@ ut_test_malloc(
/* out: TRUE if succeeded */
ulint n); /* in: try to allocate this many bytes */
/**************************************************************************
-Frees a memory bloock allocated with ut_malloc. */
+Frees a memory block allocated with ut_malloc. */
void
ut_free(
diff --git a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
index f43752fb5fc..39cbf83e58e 100644
--- a/storage/innobase/lock/lock0lock.c
+++ b/storage/innobase/lock/lock0lock.c
@@ -3386,6 +3386,10 @@ lock_table_create(
ut_ad(table && trx);
ut_ad(mutex_own(&kernel_mutex));
+ if ((type_mode & LOCK_MODE_MASK) == LOCK_AUTO_INC) {
+ ++table->n_waiting_or_granted_auto_inc_locks;
+ }
+
if (type_mode == LOCK_AUTO_INC) {
/* Only one trx can have the lock on the table
at a time: we may use the memory preallocated
@@ -3436,6 +3440,9 @@ lock_table_remove_low(
if (lock == trx->auto_inc_lock) {
trx->auto_inc_lock = NULL;
+
+ ut_a(table->n_waiting_or_granted_auto_inc_locks > 0);
+ --table->n_waiting_or_granted_auto_inc_locks;
}
UT_LIST_REMOVE(trx_locks, trx->trx_locks, lock);
diff --git a/storage/innobase/log/log0recv.c b/storage/innobase/log/log0recv.c
index ce2fc3ed535..aef58b7b576 100644
--- a/storage/innobase/log/log0recv.c
+++ b/storage/innobase/log/log0recv.c
@@ -115,7 +115,7 @@ dulint recv_max_page_lsn;
Initialize crash recovery environment. Can be called iff
recv_needed_recovery == FALSE. */
static
-void
+void
recv_init_crash_recovery(void);
/*===========================*/
@@ -2450,7 +2450,7 @@ void
recv_init_crash_recovery(void)
/*==========================*/
{
- ut_a(!recv_needed_recovery);
+ ut_a(!recv_needed_recovery);
recv_needed_recovery = TRUE;
@@ -2481,7 +2481,6 @@ recv_init_crash_recovery(void)
"InnoDB: buffer...\n");
trx_sys_doublewrite_init_or_restore_pages(TRUE);
}
-
}
/************************************************************
@@ -2805,7 +2804,7 @@ recv_recovery_from_checkpoint_start(
recv_synchronize_groups(up_to_date_group);
if (!recv_needed_recovery) {
- ut_a(ut_dulint_cmp(checkpoint_lsn,
+ ut_a(ut_dulint_cmp(checkpoint_lsn,
recv_sys->recovered_lsn) == 0);
} else {
diff --git a/storage/innobase/mtr/mtr0log.c b/storage/innobase/mtr/mtr0log.c
index f9704dc2d20..e5d572bbfa7 100644
--- a/storage/innobase/mtr/mtr0log.c
+++ b/storage/innobase/mtr/mtr0log.c
@@ -517,8 +517,9 @@ mlog_parse_index(
n = mach_read_from_2(ptr);
ptr += 2;
n_uniq = mach_read_from_2(ptr);
+ ptr += 2;
ut_ad(n_uniq <= n);
- if (end_ptr < ptr + (n + 1) * 2) {
+ if (end_ptr < ptr + n * 2) {
return(NULL);
}
} else {
@@ -531,18 +532,18 @@ mlog_parse_index(
ind->table = table;
ind->n_uniq = (unsigned int) n_uniq;
if (n_uniq != n) {
+ ut_a(n_uniq + DATA_ROLL_PTR <= n);
ind->type = DICT_CLUSTERED;
}
- /* avoid ut_ad(index->cached) in dict_index_get_n_unique_in_tree */
- ind->cached = TRUE;
if (comp) {
for (i = 0; i < n; i++) {
- ulint len = mach_read_from_2(ptr += 2);
+ ulint len = mach_read_from_2(ptr);
+ ptr += 2;
/* The high-order bit of len is the NOT NULL flag;
the rest is 0 or 0x7fff for variable-length fields,
and 1..0x7ffe for fixed-length fields. */
dict_mem_table_add_col(
- table, "DUMMY",
+ table, NULL, NULL,
((len + 1) & 0x7fff) <= 1
? DATA_BINARY : DATA_FIXBINARY,
len & 0x8000 ? DATA_NOT_NULL : 0,
@@ -552,8 +553,23 @@ mlog_parse_index(
dict_table_get_nth_col(table, i),
0);
}
- ptr += 2;
+ dict_table_add_system_columns(table, table->heap);
+ if (n_uniq != n) {
+ /* Identify DB_TRX_ID and DB_ROLL_PTR in the index. */
+ ut_a(DATA_TRX_ID_LEN
+ == dict_index_get_nth_col(ind, DATA_TRX_ID - 1
+ + n_uniq)->len);
+ ut_a(DATA_ROLL_PTR_LEN
+ == dict_index_get_nth_col(ind, DATA_ROLL_PTR - 1
+ + n_uniq)->len);
+ ind->fields[DATA_TRX_ID - 1 + n_uniq].col
+ = &table->cols[n + DATA_TRX_ID];
+ ind->fields[DATA_ROLL_PTR - 1 + n_uniq].col
+ = &table->cols[n + DATA_ROLL_PTR];
+ }
}
+ /* avoid ut_ad(index->cached) in dict_index_get_n_unique_in_tree */
+ ind->cached = TRUE;
*index = ind;
return(ptr);
}
diff --git a/storage/innobase/pars/pars0pars.c b/storage/innobase/pars/pars0pars.c
index 16530494a96..89f6f862995 100644
--- a/storage/innobase/pars/pars0pars.c
+++ b/storage/innobase/pars/pars0pars.c
@@ -1640,7 +1640,8 @@ pars_create_table(
while (column) {
dtype = dfield_get_type(que_node_get_val(column));
- dict_mem_table_add_col(table, column->name, dtype->mtype,
+ dict_mem_table_add_col(table, table->heap,
+ column->name, dtype->mtype,
dtype->prtype, dtype->len);
column->resolved = TRUE;
column->token_type = SYM_COLUMN;
diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c
index d51b7e1e0b5..b8d201e3da2 100644
--- a/storage/innobase/row/row0mysql.c
+++ b/storage/innobase/row/row0mysql.c
@@ -655,6 +655,8 @@ row_create_prebuilt(
prebuilt->old_vers_heap = NULL;
+ prebuilt->last_value = 0;
+
return(prebuilt);
}
@@ -2894,6 +2896,8 @@ next_rec:
dict_table_change_id_in_cache(table, new_id);
}
+ /* MySQL calls ha_innobase::reset_auto_increment() which does
+ the same thing. */
dict_table_autoinc_initialize(table, 0);
dict_update_statistics(table);
diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c
index e70b3b8671f..9cb4e0f6f20 100644
--- a/storage/innobase/row/row0sel.c
+++ b/storage/innobase/row/row0sel.c
@@ -4519,3 +4519,179 @@ row_search_check_if_query_cache_permitted(
return(ret);
}
+
+/***********************************************************************
+Read the AUTOINC column from the current row. */
+static
+ib_longlong
+row_search_autoinc_read_column(
+/*===========================*/
+ /* out: value read from the column */
+ dict_index_t* index, /* in: index to read from */
+ const rec_t* rec, /* in: current rec */
+ ulint col_no, /* in: column number */
+ ibool unsigned_type) /* in: signed or unsigned flag */
+{
+ ulint len;
+ byte* ptr;
+ const byte* data;
+ ib_longlong value;
+ mem_heap_t* heap = NULL;
+ byte dest[sizeof(value)];
+ ulint offsets_[REC_OFFS_NORMAL_SIZE];
+ ulint* offsets = offsets_;
+
+ *offsets_ = sizeof offsets_ / sizeof *offsets_;
+
+ /* TODO: We have to cast away the const of rec for now. This needs
+ to be fixed later.*/
+ offsets = rec_get_offsets(
+ (rec_t*) rec, index, offsets, ULINT_UNDEFINED, &heap);
+
+ /* TODO: We have to cast away the const of rec for now. This needs
+ to be fixed later.*/
+ data = rec_get_nth_field((rec_t*)rec, offsets, col_no, &len);
+
+ ut_a(len != UNIV_SQL_NULL);
+ ut_a(len <= sizeof value);
+
+#ifdef WORDS_BIGENDIAN
+ /* Copy integer data and restore sign bit */
+
+ memcpy((ptr = dest), data, len);
+
+ if (!unsigned_type) {
+ dest[0] ^= 128;
+ }
+#else
+ /* Convert integer data from Innobase to a little-endian format,
+ sign bit restored to normal */
+
+ for (ptr = dest + len; ptr != dest; ++data) {
+ --ptr;
+ *ptr = *data;
+ }
+
+ if (!unsigned_type) {
+ dest[len - 1] ^= 128;
+ }
+#endif
+
+ /* The assumption here is that the AUTOINC value can't be negative.*/
+ switch (len) {
+ case 8:
+ value = *(ib_longlong*) ptr;
+ break;
+
+ case 4:
+ value = *(ib_uint32_t*) ptr;
+ break;
+
+ case 2:
+ value = *(uint16 *) ptr;
+ break;
+
+ case 1:
+ value = *ptr;
+ break;
+
+ default:
+ ut_error;
+ }
+
+ if (UNIV_LIKELY_NULL(heap)) {
+ mem_heap_free(heap);
+ }
+
+ ut_a(value >= 0);
+
+ return(value);
+}
+
+/***********************************************************************
+Get the last row. */
+static
+const rec_t*
+row_search_autoinc_get_rec(
+/*=======================*/
+ /* out: current rec or NULL */
+ btr_pcur_t* pcur, /* in: the current cursor */
+ mtr_t* mtr) /* in: mini transaction */
+{
+ do {
+ const rec_t* rec = btr_pcur_get_rec(pcur);
+
+ if (page_rec_is_user_rec(rec)) {
+ return(rec);
+ }
+ } while (btr_pcur_move_to_prev(pcur, mtr));
+
+ return(NULL);
+}
+
+/***********************************************************************
+Read the max AUTOINC value from an index. */
+
+ulint
+row_search_max_autoinc(
+/*===================*/
+ /* out: DB_SUCCESS if all OK else
+ error code, DB_RECORD_NOT_FOUND if
+ column name can't be found in index */
+ dict_index_t* index, /* in: index to search */
+ const char* col_name, /* in: name of autoinc column */
+ ib_longlong* value) /* out: AUTOINC value read */
+{
+ ulint i;
+ ulint n_cols;
+ dict_field_t* dfield = NULL;
+ ulint error = DB_SUCCESS;
+
+ n_cols = dict_index_get_n_ordering_defined_by_user(index);
+
+ /* Search the index for the AUTOINC column name */
+ for (i = 0; i < n_cols; ++i) {
+ dfield = dict_index_get_nth_field(index, i);
+
+ if (strcmp(col_name, dfield->name) == 0) {
+ break;
+ }
+ }
+
+ *value = 0;
+
+ /* Must find the AUTOINC column name */
+ if (i < n_cols && dfield) {
+ mtr_t mtr;
+ btr_pcur_t pcur;
+
+ mtr_start(&mtr);
+
+ /* Open at the high/right end (FALSE), and INIT
+ cursor (TRUE) */
+ btr_pcur_open_at_index_side(
+ FALSE, index, BTR_SEARCH_LEAF, &pcur, TRUE, &mtr);
+
+ if (page_get_n_recs(btr_pcur_get_page(&pcur)) > 0) {
+ const rec_t* rec;
+
+ rec = row_search_autoinc_get_rec(&pcur, &mtr);
+
+ if (rec != NULL) {
+ ibool unsigned_type = (
+ dfield->col->prtype & DATA_UNSIGNED);
+
+ *value = row_search_autoinc_read_column(
+ index, rec, i, unsigned_type);
+ }
+ }
+
+ btr_pcur_close(&pcur);
+
+ mtr_commit(&mtr);
+ } else {
+ error = DB_RECORD_NOT_FOUND;
+ }
+
+ return(error);
+}
diff --git a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
index 8f8c9386f41..82b55789be2 100644
--- a/storage/innobase/srv/srv0srv.c
+++ b/storage/innobase/srv/srv0srv.c
@@ -907,7 +907,7 @@ srv_init(void)
/* create dummy table and index for old-style infimum and supremum */
table = dict_mem_table_create("SYS_DUMMY1",
DICT_HDR_SPACE, 1, 0);
- dict_mem_table_add_col(table, "DUMMY", DATA_CHAR,
+ dict_mem_table_add_col(table, NULL, NULL, DATA_CHAR,
DATA_ENGLISH | DATA_NOT_NULL, 8);
srv_sys->dummy_ind1 = dict_mem_index_create(
@@ -918,7 +918,7 @@ srv_init(void)
/* create dummy table and index for new-style infimum and supremum */
table = dict_mem_table_create("SYS_DUMMY2",
DICT_HDR_SPACE, 1, DICT_TF_COMPACT);
- dict_mem_table_add_col(table, "DUMMY", DATA_CHAR,
+ dict_mem_table_add_col(table, NULL, NULL, DATA_CHAR,
DATA_ENGLISH | DATA_NOT_NULL, 8);
srv_sys->dummy_ind2 = dict_mem_index_create(
"SYS_DUMMY2", "SYS_DUMMY2", DICT_HDR_SPACE, 0, 1);
diff --git a/storage/innobase/trx/trx0sys.c b/storage/innobase/trx/trx0sys.c
index 144721150b6..40348dd4199 100644
--- a/storage/innobase/trx/trx0sys.c
+++ b/storage/innobase/trx/trx0sys.c
@@ -646,6 +646,7 @@ trx_sys_update_mysql_binlog_offset(
MLOG_4BYTES, mtr);
}
+#ifdef UNIV_HOTBACKUP
/*********************************************************************
Prints to stderr the MySQL binlog info in the system header if the
magic number shows it valid. */
@@ -677,6 +678,7 @@ trx_sys_print_mysql_binlog_offset_from_page(
+ TRX_SYS_MYSQL_LOG_NAME);
}
}
+#endif /* UNIV_HOTBACKUP */
/*********************************************************************
Stores the MySQL binlog offset info in the trx system header if
diff --git a/storage/innobase/trx/trx0trx.c b/storage/innobase/trx/trx0trx.c
index b312e008cd2..a278ad51984 100644
--- a/storage/innobase/trx/trx0trx.c
+++ b/storage/innobase/trx/trx0trx.c
@@ -139,11 +139,6 @@ trx_create(
trx->mysql_log_file_name = NULL;
trx->mysql_log_offset = 0;
- trx->mysql_master_log_file_name = "";
- trx->mysql_master_log_pos = 0;
-
- trx->repl_wait_binlog_name = NULL;
- trx->repl_wait_binlog_pos = 0;
mutex_create(&trx->undo_mutex, SYNC_TRX_UNDO);
@@ -195,6 +190,8 @@ trx_create(
memset(&trx->xid, 0, sizeof(trx->xid));
trx->xid.formatID = -1;
+ trx->n_autoinc_rows = 0;
+
trx_reset_new_rec_lock_info(trx);
return(trx);
@@ -323,11 +320,6 @@ trx_free(
trx_undo_arr_free(trx->undo_no_arr);
}
- if (trx->repl_wait_binlog_name != NULL) {
-
- mem_free(trx->repl_wait_binlog_name);
- }
-
ut_a(UT_LIST_GET_LEN(trx->signals) == 0);
ut_a(UT_LIST_GET_LEN(trx->reply_signals) == 0);
@@ -807,14 +799,6 @@ trx_commit_off_kernel(
trx->mysql_log_file_name = NULL;
}
- if (trx->mysql_master_log_file_name[0] != '\0') {
- /* This database server is a MySQL replication slave */
- trx_sys_update_mysql_binlog_offset(
- trx->mysql_master_log_file_name,
- trx->mysql_master_log_pos,
- TRX_SYS_MYSQL_MASTER_LOG_INFO, &mtr);
- }
-
/* The following call commits the mini-transaction, making the
whole transaction committed in the file-based world, at this
log sequence number. The transaction becomes 'durable' when
diff --git a/storage/ndb/tools/restore/Restore.cpp b/storage/ndb/tools/restore/Restore.cpp
index 516dfe24855..8764da7f50c 100644
--- a/storage/ndb/tools/restore/Restore.cpp
+++ b/storage/ndb/tools/restore/Restore.cpp
@@ -607,7 +607,10 @@ RestoreDataIterator::getNextTuple(int & res)
attr_data->size = 4*sz;
//if (m_currentTable->getTableId() >= 2) { ndbout << "fix i=" << i << " off=" << ptr-buf_ptr << " attrId=" << attrId << endl; }
-
+ if(!m_hostByteOrder
+ && attr_desc->m_column->getType() == NdbDictionary::Column::Timestamp)
+ attr_data->u_int32_value[0] = Twiddle32(attr_data->u_int32_value[0]);
+
if(!Twiddle(attr_desc, attr_data))
{
res = -1;
diff --git a/strings/ctype-extra.c b/strings/ctype-extra.c
index 86041779fbe..75244e40435 100644
--- a/strings/ctype-extra.c
+++ b/strings/ctype-extra.c
@@ -894,9 +894,9 @@ uchar sort_order_ascii_general_ci[] = {
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5C,0x5D,0x5B,0x5E,0x5F,
-0x45,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x59,0x7F,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
+0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c
index 0b23f1ab9d4..7f0289d93db 100644
--- a/tests/mysql_client_test.c
+++ b/tests/mysql_client_test.c
@@ -16267,6 +16267,78 @@ static void test_bug27592()
DBUG_VOID_RETURN;
}
+static void test_bug29948()
+{
+ MYSQL *dbc=NULL;
+ MYSQL_STMT *stmt=NULL;
+ MYSQL_BIND bind;
+
+ int res=0;
+ my_bool auto_reconnect=1, error=0, is_null=0;
+ char kill_buf[20];
+ const char *query;
+ int buf;
+ unsigned long length, cursor_type;
+
+ dbc = mysql_init(NULL);
+ DIE_UNLESS(dbc);
+
+ mysql_options(dbc, MYSQL_OPT_RECONNECT, (char*)&auto_reconnect);
+ if (!mysql_real_connect(dbc, opt_host, opt_user,
+ opt_password, current_db, opt_port,
+ opt_unix_socket,
+ (CLIENT_FOUND_ROWS | CLIENT_MULTI_STATEMENTS |
+ CLIENT_MULTI_RESULTS)))
+ {
+ printf("connection failed: %s (%d)", mysql_error(dbc),
+ mysql_errno(dbc));
+ exit(1);
+ }
+
+ bind.buffer_type= MYSQL_TYPE_LONG;
+ bind.buffer= (char *)&buf;
+ bind.is_null= &is_null;
+ bind.error= &error;
+ bind.length= &length;
+
+ res= mysql_query(dbc, "DROP TABLE IF EXISTS t1");
+ myquery(res);
+ res= mysql_query(dbc, "CREATE TABLE t1 (a INT)");
+ myquery(res);
+ res= mysql_query(dbc, "INSERT INTO t1 VALUES(1)");
+ myquery(res);
+
+ stmt= mysql_stmt_init(dbc);
+ check_stmt(stmt);
+
+ cursor_type= CURSOR_TYPE_READ_ONLY;
+ res= mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void *)&cursor_type);
+ myquery(res);
+
+ query= "SELECT * from t1 where a=?";
+ res= mysql_stmt_prepare(stmt, query, strlen(query));
+ myquery(res);
+
+ res= mysql_stmt_bind_param(stmt, &bind);
+ myquery(res);
+
+ res= mysql_stmt_execute(stmt);
+ check_execute(stmt, res);
+
+ res= mysql_stmt_bind_result(stmt,&bind);
+ check_execute(stmt, res);
+
+ sprintf(kill_buf, "kill %ld", dbc->thread_id);
+ mysql_query(dbc, kill_buf);
+
+ res= mysql_stmt_store_result(stmt);
+ DIE_UNLESS(res);
+
+ mysql_stmt_free_result(stmt);
+ mysql_stmt_close(stmt);
+ mysql_query(dbc, "DROP TABLE t1");
+ mysql_close(dbc);
+}
/*
@@ -16668,6 +16740,7 @@ static struct my_tests_st my_tests[]= {
{ "test_bug28505", test_bug28505 },
{ "test_bug28934", test_bug28934 },
{ "test_bug27592", test_bug27592 },
+ { "test_bug29948", test_bug29948 },
{ "test_bug29687", test_bug29687 },
{ "test_bug29692", test_bug29692 },
{ "test_bug29306", test_bug29306 },
diff --git a/vio/viossl.c b/vio/viossl.c
index 2c74efb1bef..24bb18b9c68 100644
--- a/vio/viossl.c
+++ b/vio/viossl.c
@@ -172,78 +172,10 @@ void vio_ssl_delete(Vio *vio)
vio_delete(vio);
}
-
int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
{
- SSL *ssl;
- my_bool unused;
- my_bool net_blocking;
- enum enum_vio_type old_type;
DBUG_ENTER("sslaccept");
- DBUG_PRINT("enter", ("sd: %d ptr: 0x%lx, timeout: %ld",
- vio->sd, (long) ptr, timeout));
-
- old_type= vio->type;
- net_blocking= vio_is_blocking(vio);
- vio_blocking(vio, 1, &unused); /* Must be called before reset */
- vio_reset(vio, VIO_TYPE_SSL, vio->sd, 0, FALSE);
-
- if (!(ssl= SSL_new(ptr->ssl_context)))
- {
- DBUG_PRINT("error", ("SSL_new failure"));
- report_errors(ssl);
- vio_reset(vio, old_type,vio->sd,0,FALSE);
- vio_blocking(vio, net_blocking, &unused);
- DBUG_RETURN(1);
- }
- vio->ssl_arg= (void*)ssl;
- DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout));
- SSL_clear(ssl);
- SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout);
- SSL_set_fd(ssl, vio->sd);
- if (SSL_accept(ssl) < 1)
- {
- DBUG_PRINT("error", ("SSL_accept failure"));
- report_errors(ssl);
- SSL_free(ssl);
- vio->ssl_arg= 0;
- vio_reset(vio, old_type,vio->sd,0,FALSE);
- vio_blocking(vio, net_blocking, &unused);
- DBUG_RETURN(1);
- }
-
-#ifndef DBUG_OFF
- {
- char buf[1024];
- X509 *client_cert;
- DBUG_PRINT("info",("cipher_name= '%s'", SSL_get_cipher_name(ssl)));
-
- if ((client_cert= SSL_get_peer_certificate (ssl)))
- {
- DBUG_PRINT("info",("Client certificate:"));
- X509_NAME_oneline (X509_get_subject_name (client_cert),
- buf, sizeof(buf));
- DBUG_PRINT("info",("\t subject: %s", buf));
-
- X509_NAME_oneline (X509_get_issuer_name (client_cert),
- buf, sizeof(buf));
- DBUG_PRINT("info",("\t issuer: %s", buf));
-
- X509_free (client_cert);
- }
- else
- DBUG_PRINT("info",("Client does not have certificate."));
-
- if (SSL_get_shared_ciphers(ssl, buf, sizeof(buf)))
- {
- DBUG_PRINT("info",("shared_ciphers: '%s'", buf));
- }
- else
- DBUG_PRINT("info",("no shared ciphers!"));
- }
-#endif
-
- DBUG_RETURN(0);
+ DBUG_RETURN(sslconnect(ptr, vio, timeout));
}
@@ -251,57 +183,75 @@ int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
{
SSL *ssl;
my_bool unused;
- my_bool net_blocking;
- enum enum_vio_type old_type;
+ my_bool was_blocking;
DBUG_ENTER("sslconnect");
- DBUG_PRINT("enter", ("sd: %d ptr: 0x%lx ctx: 0x%lx",
- vio->sd, (long) ptr, (long) ptr->ssl_context));
+ DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx",
+ (long) ptr, vio->sd, (long) ptr->ssl_context));
+
+ /* Set socket to blocking if not already set */
+ vio_blocking(vio, 1, &was_blocking);
- old_type= vio->type;
- net_blocking= vio_is_blocking(vio);
- vio_blocking(vio, 1, &unused); /* Must be called before reset */
- vio_reset(vio, VIO_TYPE_SSL, vio->sd, 0, FALSE);
if (!(ssl= SSL_new(ptr->ssl_context)))
{
DBUG_PRINT("error", ("SSL_new failure"));
report_errors(ssl);
- vio_reset(vio, old_type, vio->sd, 0, FALSE);
- vio_blocking(vio, net_blocking, &unused);
+ vio_blocking(vio, was_blocking, &unused);
DBUG_RETURN(1);
}
- vio->ssl_arg= (void*)ssl;
DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout));
SSL_clear(ssl);
SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout);
SSL_set_fd(ssl, vio->sd);
- if (SSL_connect(ssl) < 1)
+
+ /*
+ SSL_do_handshake will select between SSL_connect
+ or SSL_accept depending on server or client side
+ */
+ if (SSL_do_handshake(ssl) < 1)
{
- DBUG_PRINT("error", ("SSL_connect failure"));
+ DBUG_PRINT("error", ("SSL_do_handshake failure"));
report_errors(ssl);
SSL_free(ssl);
- vio->ssl_arg= 0;
- vio_reset(vio, old_type, vio->sd, 0, FALSE);
- vio_blocking(vio, net_blocking, &unused);
+ vio_blocking(vio, was_blocking, &unused);
DBUG_RETURN(1);
}
+
+ /*
+ Connection succeeded. Install new function handlers,
+ change type, set sd to the fd used when connecting
+ and set pointer to the SSL structure
+ */
+ vio_reset(vio, VIO_TYPE_SSL, SSL_get_fd(ssl), 0, 0);
+ vio->ssl_arg= (void*)ssl;
+
#ifndef DBUG_OFF
{
- X509 *server_cert;
- DBUG_PRINT("info",("cipher_name: '%s'" , SSL_get_cipher_name(ssl)));
+ /* Print some info about the peer */
+ X509 *cert;
+ char buf[512];
+
+ DBUG_PRINT("info",("SSL connection succeeded"));
+ DBUG_PRINT("info",("Using cipher: '%s'" , SSL_get_cipher_name(ssl)));
- if ((server_cert= SSL_get_peer_certificate (ssl)))
+ if ((cert= SSL_get_peer_certificate (ssl)))
{
- char buf[256];
- DBUG_PRINT("info",("Server certificate:"));
- X509_NAME_oneline(X509_get_subject_name(server_cert), buf, sizeof(buf));
- DBUG_PRINT("info",("\t subject: %s", buf));
- X509_NAME_oneline (X509_get_issuer_name(server_cert), buf, sizeof(buf));
- DBUG_PRINT("info",("\t issuer: %s", buf));
- X509_free (server_cert);
+ DBUG_PRINT("info",("Peer certificate:"));
+ X509_NAME_oneline(X509_get_subject_name(cert), buf, sizeof(buf));
+ DBUG_PRINT("info",("\t subject: '%s'", buf));
+ X509_NAME_oneline(X509_get_issuer_name(cert), buf, sizeof(buf));
+ DBUG_PRINT("info",("\t issuer: '%s'", buf));
+ X509_free(cert);
}
else
- DBUG_PRINT("info",("Server does not have certificate."));
+ DBUG_PRINT("info",("Peer does not have certificate."));
+
+ if (SSL_get_shared_ciphers(ssl, buf, sizeof(buf)))
+ {
+ DBUG_PRINT("info",("shared_ciphers: '%s'", buf));
+ }
+ else
+ DBUG_PRINT("info",("no shared ciphers!"));
}
#endif